{ "info": { "author": "Berend Weel", "author_email": "b.weel@esiencecenter.nl", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Intended Audience :: Developers", "License :: OSI Approved :: Apache Software License", "Natural Language :: English", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Topic :: Software Development :: Libraries :: Python Modules" ], "description": ".. image:: https://travis-ci.org/NLeSC/boatswain.svg?branch=master\n :target: https://travis-ci.org/NLeSC/boatswain\n.. image:: https://ci.appveyor.com/api/projects/status/5n7uj8ownch05e34/branch/master?svg=true\n :target: https://ci.appveyor.com/project/NLeSC/boatswain/branch/master\n.. image:: https://api.codacy.com/project/badge/Grade/3271fedeb94b4d8ba24273d9cba0c852\n :target: https://www.codacy.com/app/NLeSC/boatswain?utm_source=github.com&utm_medium=referral&utm_content=NLeSC/boatswain&utm_campaign=Badge_Grade\n.. image:: https://zenodo.org/badge/80722427.svg\n :target: https://zenodo.org/badge/latestdoi/80722427\n\nBoatswain\n=========\nBoatswain is a simple build system for docker images.\n\nIt is especially usefull when you have multiple docker images that\ndepend on each other.\n\n\nInstallation\n============\n\nBoatswain is a simple python script you can install with pip\n\n::\n\n $ pip install boatswain\n\n\nUsage\n=====\nCreate a file called boatswain.yml for your project with the following\nsyntax, which is heavily based on docker-compose.\n\n.. code-block:: yaml\n\n version: 1.0 # The version of the boatswain yaml\n organisation: boatswain # Your dockerhub organisation\n images:\n image1:pytest: # the key will be used to tag the image\n context: docker/image1 # The path of the dockerfile\n image2:pytest:\n context: docker/image2\n from: image1:pytest # This image depends on the other image\n image3:pytest:\n context: docker/image3\n from: image2:pytest\n image4:pytest:\n context: docker/image4\n tag: image12:pytest # This image will be tagged with this\n\nBuilding\n--------\n\nYou can build the images defined in the boatswain file using the following\ncommand. This invokes the docker build process for each image in the order\nso the dependencies are built before the dependent image.\n\n::\n\n $ boatswain build\n\nCleaning\n--------\n\nYou can clean the images that are defined in the boatswain file.\n\n::\n\n $ boatswain clean\n\nPushing\n-------\n\nYou can push the built images to dockerhub using the `push` command.\nIt will be pushed to `organisation/imagetag` on dockerhub.\n\n::\n\n $ boatswain push\n\nExtra Options\n=============\n-h\n Display the options\n\n-q, --quiet\n Don't display any output\n\n-k, --keep_building\n Keep building images even if an error occurs\n\n--dryrun\n Do not actually execute the command, just go through the motions\n\n-b , --boatswain_file \n Override the default boatswain file (boatswain.yml)\n\n-f, --force\n Force building the images, even if they already exist\n (only for build)\n\nDebugging your build\n====================\nWhen your build does not go the way you expected boatswain\ncan display some more information by using:\n\n-v\n Verbose mode, displays a build progress for each image\n\n-vv\n Very verbose mode, displays the output of the docker build process\n\n--debug\n Debug mode, displays debug information of boatswain\n as well as the output of the docker build process\n\n\nChange Log\n==========\n\nThis document records all notable changes to Boatswain.\n\nThis project adheres to `Semantic Versioning `_.\n\n`1.0.4`_\n* Updated dynamic string message to variable\n\n`1.0.3`_\n* Added a non-zero exit code when a build fails\n* Added a build summary show succesful and non-succesfully built images\n* Added a keep-building (-k) command line argument\n* Building now stops at the first failed image by default\n\n`1.0.2`_\n* Correct citation.cff file\n\n`1.0.1`_\n--------\n* Fixed some packaging things\n\n`1.0.0`_\n--------\n\n* Fixed help text of push command\n* Fixed extraction of image id from docker response in some cases\n* Windows compatibility\n* Appveyor windows tests are passing\n\n\n`0.7.0`_ (2017-04-03)\n---------------------\n\n* Added a 'before' and 'command' key to the build definition.\n This is a list of commands that need to be staged into the context directory.\n* Default verbosity only shows 1 progress bar for all images\n* Changed progress indication to full white block\n\n`0.6.0`_ (2017-03-09)\n---------------------\n\n* Added the tree command which will print the tree of the boatswain file\n* Added quiet and extra verbose modes\n\n`0.5.1`_ (2017-02-10)\n\n* Fixed issue with printing unicode text from the docker stream\n\n`0.5.0`_ (2017-02-10)\n---------------------\n\n* Implemented push command\n* Build will now greedily try to build images instead of throwing an\n exception at the first error.\n* Added error messages to failing builds\n* Standardized return values (e.g. always a list)\n* Refactored to reduce code duplication in boatswain class\n\n`0.4.0`_ (2017-02-09)\n---------------------\n\n* Progress timer now increases every second\n* Improved error reporting (No longer uses an exception)\n\n`0.3.0`_ (2017-02-08)\n---------------------\n\n* Added a whole bunch of tests\n* Added the clean command\n* Changed file layout from recursive to using from\n\n`0.2.0`_ (2017-02-06)\n---------------------\n\n* Added dry-run option\n* Added ability to build only one image\n\n`0.1.0`_ (2017-02-02)\n---------------------\n\n* Initial release\n\n\n.. _0.1.0: https://github.com/nlesc-sherlock/boatswain/commit/f8b85edd3ed9f21c04fa846eae1af7abed8d0d77\n.. _0.2.0: https://github.com/nlesc-sherlock/boatswain/compare/f8b85ed...0.2.0\n.. _0.3.0: https://github.com/nlesc-sherlock/boatswain/compare/0.2.0...0.3.0\n.. _0.4.0: https://github.com/nlesc-sherlock/boatswain/compare/0.3.0...0.2.0\n.. _0.5.0: https://github.com/nlesc-sherlock/boatswain/compare/0.4.0...0.5.0\n.. _0.5.1: https://github.com/nlesc-sherlock/boatswain/compare/0.5.0...0.5.1\n.. _0.6.0: https://github.com/nlesc-sherlock/boatswain/compare/0.5.1...0.6.0\n.. _0.7.0: https://github.com/nlesc-sherlock/boatswain/compare/0.6.0...0.7.0\n.. _1.0.0: https://github.com/nlesc-sherlock/boatswain/compare/0.7.0...1.0.0\n.. _1.0.1: https://github.com/nlesc-sherlock/boatswain/compare/1.0.0...1.0.1\n.. _1.0.2: https://github.com/nlesc-sherlock/boatswain/compare/1.0.1...1.0.2\n.. _1.0.3: https://github.com/nlesc-sherlock/boatswain/compare/1.0.2...1.0.3\n.. _1.0.4: https://github.com/nlesc-sherlock/boatswain/compare/1.0.3...1.0.4\n\n\n", "description_content_type": "text/x-rst", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/nlesc-sherlock/boatswain", "keywords": "", "license": "Apache Software License", "maintainer": "", "maintainer_email": "", "name": "boatswain", "package_url": "https://pypi.org/project/boatswain/", "platform": "any", "project_url": "https://pypi.org/project/boatswain/", "project_urls": { "Homepage": "https://github.com/nlesc-sherlock/boatswain" }, "release_url": "https://pypi.org/project/boatswain/1.0.4/", "requires_dist": [ "setuptools (>=30)", "docker (<5.0.0,>=3.0.0)", "PyYAML (>=4.2b1)", "progressbar2 (<4.0.0,>=3.16.0)", "six (<2.0.0,>=1.10.0)", "docker-registry-client (>=0.5.1) ; extra == 'registry'", "pytest ; extra == 'test'", "pytest-flake8 ; extra == 'test'", "pytest-cov ; extra == 'test'", "pywin32 (==224) ; extra == 'windows'" ], "requires_python": "", "summary": "Yaml based way to build Docker images.", "version": "1.0.4", "yanked": false, "yanked_reason": null }, "last_serial": 6012066, "releases": { "0.1.0.dev1": [ { "comment_text": "", "digests": { "md5": "7c3c634e999753360965b2c0c9b5cfa1", "sha256": "a599b0d329e90b71853db1e73493bf73f88d966b9c75db2dc1b50a9da160568e" }, "downloads": -1, "filename": "boatswain-0.1.0.dev1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "7c3c634e999753360965b2c0c9b5cfa1", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 6246, "upload_time": "2017-02-02T16:27:38", "upload_time_iso_8601": "2017-02-02T16:27:38.276473Z", "url": "https://files.pythonhosted.org/packages/f7/be/13a7f1d240879e9624f2c4c79965fe10e46226f41113a6cf4d285239761a/boatswain-0.1.0.dev1-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "9bf0c1bcc8d8354ad2867ae8ad836d72", "sha256": "220dd33fcd5905872cb00bf1bfcdd157cf7f569c45d5ccae02d46490f1525f28" }, "downloads": -1, "filename": "boatswain-0.1.0.dev1.tar.gz", "has_sig": false, "md5_digest": "9bf0c1bcc8d8354ad2867ae8ad836d72", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4243, "upload_time": "2017-02-02T16:27:39", "upload_time_iso_8601": "2017-02-02T16:27:39.348161Z", "url": "https://files.pythonhosted.org/packages/af/19/8ff02aec696e8f1f97ea6aba932c188fdb5d55fb405bfe725d3e10810a25/boatswain-0.1.0.dev1.tar.gz", "yanked": false, "yanked_reason": null } ], "0.2.0": [], "0.3.0": [ { "comment_text": "", "digests": { "md5": "3fe91cfca041d6d499af6cce6f35478f", "sha256": "f6c0b8c9159430d547324d62aaab233386063daaff292c8b4d0bde6bf8fda96c" }, "downloads": -1, "filename": "boatswain-0.3.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "3fe91cfca041d6d499af6cce6f35478f", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 9579, "upload_time": "2017-02-08T15:43:17", "upload_time_iso_8601": "2017-02-08T15:43:17.960049Z", "url": "https://files.pythonhosted.org/packages/fe/04/56635532f6465bfb453ab9ff89e6a01e01cbb4200b91e880abbb511cb377/boatswain-0.3.0-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "fbdae038b416b2a7d9003e227c082a12", "sha256": "ff70a19d0d9df1ab73b76226fae6eb082ef97c4d504e2b8a7b655080da3279f9" }, "downloads": -1, "filename": "boatswain-0.3.0.tar.gz", "has_sig": false, "md5_digest": "fbdae038b416b2a7d9003e227c082a12", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7969, "upload_time": "2017-02-08T15:43:26", "upload_time_iso_8601": "2017-02-08T15:43:26.973872Z", "url": "https://files.pythonhosted.org/packages/c5/f9/8fad3ee2525078a47afafe097d85ff1a20307096925f9cb0b24c477428ad/boatswain-0.3.0.tar.gz", "yanked": false, "yanked_reason": null } ], "0.4.0": [ { "comment_text": "", "digests": { "md5": "4a8c8b4c61833aa9caa09449e1270be9", "sha256": "3504f208cfb347a88341f2f18b8ba92b4c9d37630169e140d7fd5882f36fead9" }, "downloads": -1, "filename": "boatswain-0.4.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "4a8c8b4c61833aa9caa09449e1270be9", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 10340, "upload_time": "2017-02-09T15:32:11", "upload_time_iso_8601": "2017-02-09T15:32:11.462382Z", "url": "https://files.pythonhosted.org/packages/5c/5d/6cb6a80f82a84a07587e0516fcab54ac8aa76d3431dd2c1aabde2123ab3e/boatswain-0.4.0-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "8b47a56dfc4224da507ad2c96e4fb24d", "sha256": "f58bde80eea31f7a21dbee428df5269f8e362fd8bc8a8b200b24f746c91e97ab" }, "downloads": -1, "filename": "boatswain-0.4.0.tar.gz", "has_sig": false, "md5_digest": "8b47a56dfc4224da507ad2c96e4fb24d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8946, "upload_time": "2017-02-09T15:32:21", "upload_time_iso_8601": "2017-02-09T15:32:21.532910Z", "url": "https://files.pythonhosted.org/packages/1a/54/c419b0f86fdd4124cf75fbdca31a8903233a77a41c01968ba78dac610707/boatswain-0.4.0.tar.gz", "yanked": false, "yanked_reason": null } ], "0.5.1": [ { "comment_text": "", "digests": { "md5": "c9d958b9344ea8d6294809ce2cbde757", "sha256": "19084952e7869088d2f8d6efbb0cbdbf203ca15d2c5f95a925f77fbe88a29d67" }, "downloads": -1, "filename": "boatswain-0.5.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "c9d958b9344ea8d6294809ce2cbde757", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 11676, "upload_time": "2017-02-10T17:02:02", "upload_time_iso_8601": "2017-02-10T17:02:02.831007Z", "url": "https://files.pythonhosted.org/packages/df/c1/05abe989e8ccaae67c64fec7b2a05ed980974a6e257349f933506a47a7d1/boatswain-0.5.1-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "34161ceb367416933b7a779233463038", "sha256": "f47563fdcd55adba41a19e8bea50af554b9a17fab1ab4f8899e2dd6d08ddad9f" }, "downloads": -1, "filename": "boatswain-0.5.1.tar.gz", "has_sig": false, "md5_digest": "34161ceb367416933b7a779233463038", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10538, "upload_time": "2017-02-10T17:02:11", "upload_time_iso_8601": "2017-02-10T17:02:11.160526Z", "url": "https://files.pythonhosted.org/packages/ea/46/74502eb35f21dc627b2fc67f81bd8a64374032b060bf5a88971f9cb739f8/boatswain-0.5.1.tar.gz", "yanked": false, "yanked_reason": null } ], "0.6.0": [ { "comment_text": "", "digests": { "md5": "de94306fc75b18a50fe2c5b4502cf42f", "sha256": "4f587e78e7800eb3b262cff6855b156027a9818c365b675462118bb07c499fa8" }, "downloads": -1, "filename": "boatswain-0.6.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "de94306fc75b18a50fe2c5b4502cf42f", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 13275, "upload_time": "2017-03-09T10:45:59", "upload_time_iso_8601": "2017-03-09T10:45:59.638844Z", "url": "https://files.pythonhosted.org/packages/91/9d/b47e8acadcfba4033067681ab864a853aa09e309b6728f5de79b6df11c58/boatswain-0.6.0-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "2cc35b7d3339e72adb51f772ed6938d8", "sha256": "61a1e2dfe064c28fbd56c4deb70dbde5a7f234f67e97dd8157e82bbf7565add7" }, "downloads": -1, "filename": "boatswain-0.6.0.tar.gz", "has_sig": false, "md5_digest": "2cc35b7d3339e72adb51f772ed6938d8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11793, "upload_time": "2017-03-09T10:46:01", "upload_time_iso_8601": "2017-03-09T10:46:01.257846Z", "url": "https://files.pythonhosted.org/packages/55/e9/cc0627cbb7278c991c6a0a00207528595721a31e01eaaec5e2c0a7a9013d/boatswain-0.6.0.tar.gz", "yanked": false, "yanked_reason": null } ], "0.7.0": [ { "comment_text": "", "digests": { "md5": "781af2c9299944d5dc272ce9722a7f6d", "sha256": "7c75aafa195057e86ee37ffd6241abb2792e5bdccde3d912710cbe5f970e29da" }, "downloads": -1, "filename": "boatswain-0.7.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "781af2c9299944d5dc272ce9722a7f6d", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 14387, "upload_time": "2017-04-03T15:34:03", "upload_time_iso_8601": "2017-04-03T15:34:03.548539Z", "url": "https://files.pythonhosted.org/packages/eb/83/9f5c09fc937cce1b229efc0f641bd02e687c4688b8de4f35892b1902a42a/boatswain-0.7.0-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "14bc73202478459f1112a55f21e3bf4f", "sha256": "20bfcb4ec96f4b55678e270daec3978555e3bb4c94aef52590b5c37e23669cdf" }, "downloads": -1, "filename": "boatswain-0.7.0.tar.gz", "has_sig": false, "md5_digest": "14bc73202478459f1112a55f21e3bf4f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12714, "upload_time": "2017-04-03T15:34:13", "upload_time_iso_8601": "2017-04-03T15:34:13.746874Z", "url": "https://files.pythonhosted.org/packages/04/1e/650868cccfa1e40cd98885db37287d9919d746ac72c8d02b980ee5cb2e41/boatswain-0.7.0.tar.gz", "yanked": false, "yanked_reason": null } ], "1.0.0": [ { "comment_text": "", "digests": { "md5": "89da68a62c1299a51e85a1eb15be8d0c", "sha256": "b24fe15a1847e6944fe267b7b9ac563eebe911089a78fbe75a113037bcbe2cd3" }, "downloads": -1, "filename": "boatswain-1.0.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "89da68a62c1299a51e85a1eb15be8d0c", "packagetype": "bdist_wheel", "python_version": "3.5", "requires_python": null, "size": 15449, "upload_time": "2017-09-14T15:16:27", "upload_time_iso_8601": "2017-09-14T15:16:27.948376Z", "url": "https://files.pythonhosted.org/packages/74/a2/1634dccb43c7716966433c92bf2c18380d0b069fe28ecf1075b2716ced9c/boatswain-1.0.0-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "53efca46d2af2071d20626768970901f", "sha256": "e393c2b2b59b6ae147169f81252cc246ab2a28ebdbc8ccf27a2c60817db21543" }, "downloads": -1, "filename": "boatswain-1.0.0.tar.gz", "has_sig": false, "md5_digest": "53efca46d2af2071d20626768970901f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13540, "upload_time": "2017-09-14T15:16:26", "upload_time_iso_8601": "2017-09-14T15:16:26.341777Z", "url": "https://files.pythonhosted.org/packages/9f/ec/acd1bcc9c26258cf3d513ad5ec7cb75b0985cf9741ff60d4fa5edda88519/boatswain-1.0.0.tar.gz", "yanked": false, "yanked_reason": null } ], "1.0.1": [ { "comment_text": "", "digests": { "md5": "1fd6344aaf0e2053602e1d04b9a6a55a", "sha256": "459ec4b79c9150ea466d42479a4d73384995722dab037b008bde82574e53853e" }, "downloads": -1, "filename": "boatswain-1.0.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "1fd6344aaf0e2053602e1d04b9a6a55a", "packagetype": "bdist_wheel", "python_version": "3.5", "requires_python": null, "size": 15512, "upload_time": "2017-09-14T15:25:33", "upload_time_iso_8601": "2017-09-14T15:25:33.078751Z", "url": "https://files.pythonhosted.org/packages/92/56/7c5b8e348fa4b256a7392f4e2f17dab628c41c76fbf33212aa983b3ef08a/boatswain-1.0.1-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "afa06810281f35ef665a39c97b67439f", "sha256": "4d8a076bfea4bf0463c18557cb2f3647523fe36d70f4cf59ddb6263e6562b8dd" }, "downloads": -1, "filename": "boatswain-1.0.1.tar.gz", "has_sig": false, "md5_digest": "afa06810281f35ef665a39c97b67439f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13596, "upload_time": "2017-09-14T15:25:31", "upload_time_iso_8601": "2017-09-14T15:25:31.730234Z", "url": "https://files.pythonhosted.org/packages/1b/4d/00cfecfe56bdf845f5151204d0304b6d92c70ca9a0b3abe6261fddd04fa1/boatswain-1.0.1.tar.gz", "yanked": false, "yanked_reason": null } ], "1.0.2": [ { "comment_text": "", "digests": { "md5": "aee27482f4b60f7a73f52e0f13d0f574", "sha256": "b76e5cf189b308262649621f1352ae5c39c3c767a6603b35c25aa227798b018b" }, "downloads": -1, "filename": "boatswain-1.0.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "aee27482f4b60f7a73f52e0f13d0f574", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 14146, "upload_time": "2018-10-29T14:53:35", "upload_time_iso_8601": "2018-10-29T14:53:35.773872Z", "url": "https://files.pythonhosted.org/packages/12/cb/52d31a0d3c5266fcc9603aa7bc290e9448b5212ffb78b5bbe1a9bf08f180/boatswain-1.0.2-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "50130cc4cfea87f9af0e5ac53b844248", "sha256": "45ce7f2a720aba15118b259e4f8bde2604445111b4ec77bbd40e4e523ac68972" }, "downloads": -1, "filename": "boatswain-1.0.2.tar.gz", "has_sig": false, "md5_digest": "50130cc4cfea87f9af0e5ac53b844248", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14667, "upload_time": "2018-10-29T14:54:05", "upload_time_iso_8601": "2018-10-29T14:54:05.600606Z", "url": "https://files.pythonhosted.org/packages/dc/fe/1a59eb3267455be96d2531be1e32050d7819024e7740eed43d7f3c0b36fd/boatswain-1.0.2.tar.gz", "yanked": false, "yanked_reason": null } ], "1.0.3": [ { "comment_text": "", "digests": { "md5": "2b4e9b98b45cf18454b9c7c4dc7aee01", "sha256": "f54bcbd9d2596d9d432660495d342b70336046fdb38640c9962b6b125d14421f" }, "downloads": -1, "filename": "boatswain-1.0.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "2b4e9b98b45cf18454b9c7c4dc7aee01", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 14157, "upload_time": "2018-10-29T14:53:37", "upload_time_iso_8601": "2018-10-29T14:53:37.271924Z", "url": "https://files.pythonhosted.org/packages/f2/99/a8a68b3b6f13b7e7d91947d82ed58127229bf38d177242bb598c8317d86d/boatswain-1.0.3-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "b8ee3e1848f160e36e04c6fbb8c72e5e", "sha256": "c1fbf16b4f96a6bc2d20fe1b2b77397d1b4262106459bbd362071fdadb59219a" }, "downloads": -1, "filename": "boatswain-1.0.3.tar.gz", "has_sig": false, "md5_digest": "b8ee3e1848f160e36e04c6fbb8c72e5e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14674, "upload_time": "2018-10-29T14:42:57", "upload_time_iso_8601": "2018-10-29T14:42:57.518899Z", "url": "https://files.pythonhosted.org/packages/ff/9c/beee4a51157f91cca4f30013ffc88834bd126f2c1e6eabb209d9db07010a/boatswain-1.0.3.tar.gz", "yanked": false, "yanked_reason": null } ], "1.0.4": [ { "comment_text": "", "digests": { "md5": "45736aca85ce6736169faa350ac2d22d", "sha256": "f8603cee1191b23e5505b7dcb35bf3c6238aca504ecce5470225ccff74dd6af5" }, "downloads": -1, "filename": "boatswain-1.0.4-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "45736aca85ce6736169faa350ac2d22d", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 18340, "upload_time": "2019-10-22T10:26:49", "upload_time_iso_8601": "2019-10-22T10:26:49.213187Z", "url": "https://files.pythonhosted.org/packages/bf/9d/cbd14619be079784ed4785957120bc7b5e40488342de2aa96106264c5905/boatswain-1.0.4-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "e7ba0e2bfd406aca58221d772d0a2168", "sha256": "a11ab910ebc1c24e5ede33913b93f21ddb1d06e523cf5473c655b529f863f623" }, "downloads": -1, "filename": "boatswain-1.0.4.tar.gz", "has_sig": false, "md5_digest": "e7ba0e2bfd406aca58221d772d0a2168", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16238, "upload_time": "2019-10-22T10:26:52", "upload_time_iso_8601": "2019-10-22T10:26:52.501023Z", "url": "https://files.pythonhosted.org/packages/da/c4/d6bc02a4ca94b094ab2274a4d264dd13a45ab83a97b63f909847668615f4/boatswain-1.0.4.tar.gz", "yanked": false, "yanked_reason": null } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "45736aca85ce6736169faa350ac2d22d", "sha256": "f8603cee1191b23e5505b7dcb35bf3c6238aca504ecce5470225ccff74dd6af5" }, "downloads": -1, "filename": "boatswain-1.0.4-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "45736aca85ce6736169faa350ac2d22d", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 18340, "upload_time": "2019-10-22T10:26:49", "upload_time_iso_8601": "2019-10-22T10:26:49.213187Z", "url": "https://files.pythonhosted.org/packages/bf/9d/cbd14619be079784ed4785957120bc7b5e40488342de2aa96106264c5905/boatswain-1.0.4-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "e7ba0e2bfd406aca58221d772d0a2168", "sha256": "a11ab910ebc1c24e5ede33913b93f21ddb1d06e523cf5473c655b529f863f623" }, "downloads": -1, "filename": "boatswain-1.0.4.tar.gz", "has_sig": false, "md5_digest": "e7ba0e2bfd406aca58221d772d0a2168", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16238, "upload_time": "2019-10-22T10:26:52", "upload_time_iso_8601": "2019-10-22T10:26:52.501023Z", "url": "https://files.pythonhosted.org/packages/da/c4/d6bc02a4ca94b094ab2274a4d264dd13a45ab83a97b63f909847668615f4/boatswain-1.0.4.tar.gz", "yanked": false, "yanked_reason": null } ], "vulnerabilities": [] }