{ "info": { "author": "Sashko Petrov", "author_email": "alexandervpetrov@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Environment :: Console", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Natural Language :: English", "Operating System :: POSIX :: Linux", "Programming Language :: Python", "Programming Language :: Python :: 3.6", "Topic :: Software Development :: Build Tools", "Topic :: System :: Installation/Setup", "Topic :: System :: Software Distribution" ], "description": "# Ribosome\n\nThe purpose of this tool is to improve release culture for small projects,\nto provide useful **conventions** and suitable **vocabulary** for speaking about\nsoftware pieces, and to simplify making and deploying simple services.\n\nRibosome imposes some reasonable concepts and assumptions that, I believe,\ncan clarify the release process and be helpful for a wide range of projects.\n\nLet's begin with the description of what I consider the proper release process.\nYou have a project - some version controlled thing, a source code repository\nfor example. At some point in time, you decide to freeze its state by tagging\nwith version. Then you build it, run tests against it, and archive all needed files\nas the release (release archive). You upload the archive to some persistent\nstorage for further use. The next step is to deploy the release to some working\nplace and run by loading one or more services with appropriate configurations\nattached. Notice, it is *essential* to support the clear separation between release,\ndeploy and run stages. Also, valuable properties are reproducibility and\nidempotence of steps. In a nutshell, exactly process described can be achieved\nwith the help of Ribosome and a bit of discipline.\n\n\n## Getting started\n\nRibosome is available on PyPI:\n[https://pypi.org/project/ribosome.tool/](https://pypi.org/project/ribosome.tool/)\n\nTo install use [pipenv](http://pipenv.org) (or pip, of course):\n\n $ pipenv install ribosome.tool\n\nRead help:\n\n $ ribosome --help\n\n Usage: ribosome [OPTIONS] COMMAND [ARGS]...\n\n Yet another project deploy and release tool\n\n Options:\n -v, --verbose More detailed logging to console\n -f, --force Rewrite existing files\n --version Show the version and exit.\n --help Show this message and exit.\n\n Commands:\n deploy Deploy release artifacts to host\n do Run command for service at remote host\n gc Uninstall deployed versions at remote host\n init Initialize Ribosome project\n jump Reload all services to version at remote host\n load Load service at remote host\n ls List deployed versions at remote host\n release Make release and publish artifacts\n show Show loaded services at remote host\n unload Unload service at remote host\n version Show version or update meta descriptor\n\nAnd help for specific command:\n\n $ ribosome --help\n\n\n## Typical workflow\n\nFor a start, in the root of your project's folder, the file `codons.yaml`\nshould be placed - this is where various settings for Ribosome live.\nYou can generate an empty one by the command:\n\n $ ribosome init\n\nSuppose you have already configured your project for Ribosome via `codons.yaml` -\nI will describe later how to do this.\n\nRibosome releases project versions, i.e., named tags of source code repository.\nTag expected to be in one of the forms: `N.N.N`, `N.N.NaN`, `N.N.NbN` and `dev.XXXX` -\nwhere `N` is for a number and `XXXX` for any alphanumerical suffix with dots inside allowed.\n\nAt any time you can find out what version your project folder is:\n\n $ ribosome version info\n\nAfter you tagged repository with a version, you can make a release:\n\n $ ribosome release\n\nDuring this process release archive is made and uploaded to Amazon S3 bucket.\nCredentials for S3 access expected to be\n[already configured](https://boto3.readthedocs.io/en/latest/guide/quickstart.html#configuration)\nin the environment.\n\nAny uploaded to S3 release can be deployed to remote host accessible via SSH:\n\n $ ribosome deploy \n\nAt remote host `~/releases` folder is used for archives upload and\n`~/projects` is used for release deployment and management.\nDuring deploy process runtime environment will be set up.\nAfter that release files and runtime are considered immutable.\n\nThis and any other Ribosome operations using SSH (the ones taking `host` parameter)\nrequire you to configure host settings and alias inside `~/.ssh/config`.\n\nFor deployed release you can load and unload service(s):\n\n $ ribosome load \n\nIn case of a simple upgrade, when all services of interest are already running at host,\nyou can quickly reload all of them (jump) to the new version:\n\n $ ribosome jump \n\nLoad, unload and jump commands require entering sudo password for the remote host.\n\nWhen (un)loading services Ribosome save their status in files\n`~/projects//services.index.yaml` so you can easily view\nthe state of the remote host for current project via command:\n\n $ ribosome show \n\nAlternatively, adding an option `-a` will scan for services of all projects\ndeployed at host:\n\n $ ribosome show -a\n\nAt any time you can list deployed versions for current project with:\n\n $ ribosome ls \n\nor get a list for all projects with `-a` option.\n\nDeployed versions can be removed from remote host with:\n\n $ ribosome gc \n\nwhere first argument is versions pattern - symbols `*` and `?` are recognized.\nVersions with services currently loaded cannot be removed by this command,\nyou should unload all services from version to be able to remove it.\n\n\n## Project configuration\n\nTechnically, Ribosome is just simple commands and remote commands runner\nwith few features for SCM management.\nIt does not do anything special or complex in terms of functionality.\nWhat it does do - is the separation of concerns and operations specifications\nto enforce and support the release process with reproducibility and immutability in mind.\n\nRibosome on its own does not know how to *release* projects or *load* services.\nIt provides only the **structure** or **interface** for these operations.\n\nSo, to configure a project for Ribosome via the file `codons.yaml` -\nyou need to provide build, setup and other commands - your project's release process\nimplementation of Ribosome interface.\n\nPlease, see examples for\n[Nginx configuration files](https://github.com/alexandervpetrov/ribosome-example-nginx)\nand\n[Django project](https://github.com/alexandervpetrov/ribosome-example-django).\n\n\n## Acknowledgments\n\nThis project is created with the support of [Orderry](https://orderry.com/) company,\nmy thanks for the opportunities and understanding.\n\nFor the idea of the name `Ribosome` my gratitude goes to\n[Ievgeniia Prekrasna](https://www.facebook.com/preckrasna).\n\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/alexandervpetrov/ribosome", "keywords": "build deploy release", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "ribosome.tool", "package_url": "https://pypi.org/project/ribosome.tool/", "platform": "", "project_url": "https://pypi.org/project/ribosome.tool/", "project_urls": { "Homepage": "https://github.com/alexandervpetrov/ribosome" }, "release_url": "https://pypi.org/project/ribosome.tool/0.6.4/", "requires_dist": [ "click", "ruamel.yaml", "coloredlogs", "boto3", "fabric3", "requests" ], "requires_python": ">=3.6", "summary": "Yet another project deploy and release tool", "version": "0.6.4" }, "last_serial": 5874525, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "33a33189edb333a9d125f2b300cbea51", "sha256": "8cfcbfb707024d8f278b19ad0d5fdbc198f57f8c78a4f51a6de5c4b326eef402" }, "downloads": -1, "filename": "ribosome.tool-0.1.0-py36-none-any.whl", "has_sig": false, "md5_digest": "33a33189edb333a9d125f2b300cbea51", "packagetype": "bdist_wheel", "python_version": "py36", "requires_python": ">=3.6", "size": 18234, "upload_time": "2018-07-17T13:29:26", "url": "https://files.pythonhosted.org/packages/77/ec/66ae4af7af1b3609152f9f0f6c8407b51ead27361e1f3ff3b90bda98631a/ribosome.tool-0.1.0-py36-none-any.whl" }, { "comment_text": "", "digests": { "md5": "7904a3d1cab4d12b60ccb48e5a56397e", "sha256": "8e27adc0455b9418a01c3b38451fd759641d5621e068eace271e24d329695d43" }, "downloads": -1, "filename": "ribosome.tool-0.1.0.tar.gz", "has_sig": false, "md5_digest": "7904a3d1cab4d12b60ccb48e5a56397e", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 16811, "upload_time": "2018-07-17T13:29:28", "url": "https://files.pythonhosted.org/packages/88/46/a1f3e1a5803c6c2adc375ad3c8b7dfdae75979e97b18916ac281b7910e36/ribosome.tool-0.1.0.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "83c01b9d9c782b541cdbc3d808a35013", "sha256": "d04da6373e93b5399d6aa6b200c3bf1041f4f92cb4460ae2cceec519712d9b79" }, "downloads": -1, "filename": "ribosome.tool-0.2.0-py36-none-any.whl", "has_sig": false, "md5_digest": "83c01b9d9c782b541cdbc3d808a35013", "packagetype": "bdist_wheel", "python_version": "py36", "requires_python": ">=3.6", "size": 18221, "upload_time": "2018-07-27T12:54:51", "url": "https://files.pythonhosted.org/packages/81/47/b2c1de61a2787f8cb7ddae6d780a19562252013713d06641910669358f01/ribosome.tool-0.2.0-py36-none-any.whl" }, { "comment_text": "", "digests": { "md5": "6fe2c87a87b44b6e5c84bd07bfb05d26", "sha256": "d494f54ccf66487d5143b1662c0cb996a6cd9e7f387a4344938e45f50b4332eb" }, "downloads": -1, "filename": "ribosome.tool-0.2.0.tar.gz", "has_sig": false, "md5_digest": "6fe2c87a87b44b6e5c84bd07bfb05d26", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 16844, "upload_time": "2018-07-27T12:54:52", "url": "https://files.pythonhosted.org/packages/93/a3/c10163e1b954b51e59176672bb31b1b2e2956ba6c03c408228fae80b301b/ribosome.tool-0.2.0.tar.gz" } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "9b9738252c5be8acad1d59675696d34d", "sha256": "e49e9a86d669cd585e25a96b30f6d08c106bbffaed54ec892dd10da77c1467df" }, "downloads": -1, "filename": "ribosome.tool-0.3.0-py36-none-any.whl", "has_sig": false, "md5_digest": "9b9738252c5be8acad1d59675696d34d", "packagetype": "bdist_wheel", "python_version": "py36", "requires_python": ">=3.6", "size": 19170, "upload_time": "2018-08-10T11:33:47", "url": "https://files.pythonhosted.org/packages/ef/af/c4baa12eb01d3f2aef575fc3035f1a6b78dbe469b68a1d4a8f7002b1db4c/ribosome.tool-0.3.0-py36-none-any.whl" }, { "comment_text": "", "digests": { "md5": "20ca97fda842b53f44d3200891c33024", "sha256": "f906718059d83e71965f461367d4903cc64477cbce0e68552681469662fa2336" }, "downloads": -1, "filename": "ribosome.tool-0.3.0.tar.gz", "has_sig": false, "md5_digest": "20ca97fda842b53f44d3200891c33024", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 17840, "upload_time": "2018-08-10T11:33:49", "url": "https://files.pythonhosted.org/packages/23/24/c039039b10d936b1fee6be997e68c2822c066b14d300d4294c3ae453b67e/ribosome.tool-0.3.0.tar.gz" } ], "0.3.1": [ { "comment_text": "", "digests": { "md5": "b05b833f7bc2a1e1610b2631a4216056", "sha256": "291d4719e1e9a5b49f5e5221bce208e0bb33c0c60f9dd9356c9377d12dc6dd09" }, "downloads": -1, "filename": "ribosome.tool-0.3.1-py36-none-any.whl", "has_sig": false, "md5_digest": "b05b833f7bc2a1e1610b2631a4216056", "packagetype": "bdist_wheel", "python_version": "py36", "requires_python": ">=3.6", "size": 19181, "upload_time": "2018-08-10T11:54:05", "url": "https://files.pythonhosted.org/packages/73/35/bdca5fe36d1e2dbb7044886256fd95fcd627c1d1d6672fc13ba95cb79bbe/ribosome.tool-0.3.1-py36-none-any.whl" }, { "comment_text": "", "digests": { "md5": "bad759c4e995a60d9ab40b7f404603b3", "sha256": "a164489922ba0a5b317134e5491ec013f7ba04ecff6987e432406d9482d29d18" }, "downloads": -1, "filename": "ribosome.tool-0.3.1.tar.gz", "has_sig": false, "md5_digest": "bad759c4e995a60d9ab40b7f404603b3", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 17853, "upload_time": "2018-08-10T11:54:07", "url": "https://files.pythonhosted.org/packages/40/ec/4490c1b314d506f4bc386375c20649381a3745d2e22ab3b44224db974f48/ribosome.tool-0.3.1.tar.gz" } ], "0.3.2": [ { "comment_text": "", "digests": { "md5": "0ef7a7dae72c762e42d7f8d9d44d4d57", "sha256": "326b46ea84d45a6f9cfa4ce32799fa2cb153c54f88b84e8521876f7ae329097e" }, "downloads": -1, "filename": "ribosome.tool-0.3.2-py36-none-any.whl", "has_sig": false, "md5_digest": "0ef7a7dae72c762e42d7f8d9d44d4d57", "packagetype": "bdist_wheel", "python_version": "py36", "requires_python": ">=3.6", "size": 19216, "upload_time": "2018-08-10T13:05:10", "url": "https://files.pythonhosted.org/packages/15/38/74f4f02fe7d2a63978a6746a55fbc9fdff7801b8d19c95a1f27e6ff9354e/ribosome.tool-0.3.2-py36-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b26cbfdb66ae8da7c4dae99b3403bd26", "sha256": "5bc9cd75123b3be86bc3fcbbbaeaf7ea9d96d722a6958fdfb5f73ccd8a22edbe" }, "downloads": -1, "filename": "ribosome.tool-0.3.2.tar.gz", "has_sig": false, "md5_digest": "b26cbfdb66ae8da7c4dae99b3403bd26", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 17881, "upload_time": "2018-08-10T13:05:11", "url": "https://files.pythonhosted.org/packages/28/ba/ee91bc78e26259bf7d7961ba8d239381e38cbc2571d0a513e58ad1ea841d/ribosome.tool-0.3.2.tar.gz" } ], "0.3.3": [ { "comment_text": "", "digests": { "md5": "ca5ed81e9da19717c9514bd3546ab130", "sha256": "5598373426600787948e9af3a463b553b2f2c7e02e3bcc682b2486d322007d97" }, "downloads": -1, "filename": "ribosome.tool-0.3.3-py36-none-any.whl", "has_sig": false, "md5_digest": "ca5ed81e9da19717c9514bd3546ab130", "packagetype": "bdist_wheel", "python_version": "py36", "requires_python": ">=3.6", "size": 19211, "upload_time": "2018-08-10T14:15:00", "url": "https://files.pythonhosted.org/packages/03/e8/a9c4784c55570e32dcdcbcabadbd3e527d5175cbe584348069de2b4e6d3d/ribosome.tool-0.3.3-py36-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b059af5059a0bd91bab6b5f6a839605e", "sha256": "2563f0270b0f87570e0579c505f1d1c24b02cb172e40e85ce34be502b888ee88" }, "downloads": -1, "filename": "ribosome.tool-0.3.3.tar.gz", "has_sig": false, "md5_digest": "b059af5059a0bd91bab6b5f6a839605e", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 17876, "upload_time": "2018-08-10T14:15:02", "url": "https://files.pythonhosted.org/packages/a5/f9/2444179854770e5344cc91503880ea4c8982541dc0eaef6e652dc93d527d/ribosome.tool-0.3.3.tar.gz" } ], "0.4.0": [ { "comment_text": "", "digests": { "md5": "c6ea58e211eeadf76e26a0aed7cc3333", "sha256": "814bc3c9f22a15715d8a6df52f03c3de978f03afdf24ef643dcdd4caef62beac" }, "downloads": -1, "filename": "ribosome.tool-0.4.0-py36-none-any.whl", "has_sig": false, "md5_digest": "c6ea58e211eeadf76e26a0aed7cc3333", "packagetype": "bdist_wheel", "python_version": "py36", "requires_python": ">=3.6", "size": 19579, "upload_time": "2018-08-15T09:39:53", "url": "https://files.pythonhosted.org/packages/fb/e5/39fc205eebab4a06351e38eeeb50f1100d34d7d80295b2d8c8409745514a/ribosome.tool-0.4.0-py36-none-any.whl" }, { "comment_text": "", "digests": { "md5": "7ced0882271bd68e72e8f1995d0d8ba1", "sha256": "70b2d07df88110a8948eec4d6f00ed007c504bf5c4d8624c2e8a0253cb47ce99" }, "downloads": -1, "filename": "ribosome.tool-0.4.0.tar.gz", "has_sig": false, "md5_digest": "7ced0882271bd68e72e8f1995d0d8ba1", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 18232, "upload_time": "2018-08-15T09:39:54", "url": "https://files.pythonhosted.org/packages/54/21/b9563cd5d7964a4cb5d7b443650b0402348b7b08babb7b0419ed283a5667/ribosome.tool-0.4.0.tar.gz" } ], "0.5.0": [ { "comment_text": "", "digests": { "md5": "d8ba97c6cd05608f06f8b9dc41d1025c", "sha256": "e6d0f5985dcbd82d911ca423c6766821e5ed2a56c543525a42bf645b5b75f436" }, "downloads": -1, "filename": "ribosome.tool-0.5.0-py36-none-any.whl", "has_sig": false, "md5_digest": "d8ba97c6cd05608f06f8b9dc41d1025c", "packagetype": "bdist_wheel", "python_version": "py36", "requires_python": ">=3.6", "size": 19850, "upload_time": "2018-08-29T15:31:30", "url": "https://files.pythonhosted.org/packages/70/eb/2ea85cb1b4977a78ed2a4dfb499c83a872e80219a5424b4226e9df67edca/ribosome.tool-0.5.0-py36-none-any.whl" }, { "comment_text": "", "digests": { "md5": "6217df3b8c50ef977bd1fbcdd40dcda6", "sha256": "4167e07dd8e4fc993bef56a3f7fccf76b764503a5916dd3f83cb530882b8d0aa" }, "downloads": -1, "filename": "ribosome.tool-0.5.0.tar.gz", "has_sig": false, "md5_digest": "6217df3b8c50ef977bd1fbcdd40dcda6", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 18494, "upload_time": "2018-08-29T15:31:31", "url": "https://files.pythonhosted.org/packages/54/f8/2ffe109d205268ef7e7da154ed3338d0c3934fd19a5dd67db9a38a2bf322/ribosome.tool-0.5.0.tar.gz" } ], "0.6.0": [ { "comment_text": "", "digests": { "md5": "6b7ec458666e1f3357da297b39182f66", "sha256": "d2154787d28467b925e232fdc06ff2cc066fd76efd4f5bfba3cc5c8ca22e1810" }, "downloads": -1, "filename": "ribosome.tool-0.6.0-py36-none-any.whl", "has_sig": false, "md5_digest": "6b7ec458666e1f3357da297b39182f66", "packagetype": "bdist_wheel", "python_version": "py36", "requires_python": ">=3.6", "size": 21646, "upload_time": "2019-05-10T21:31:48", "url": "https://files.pythonhosted.org/packages/be/6a/444cb7b24e42eea3856d0a55f3e001765ee05cdb6962566319873eff262c/ribosome.tool-0.6.0-py36-none-any.whl" }, { "comment_text": "", "digests": { "md5": "20400f7b7c418d4ee7c9c838b2685487", "sha256": "f19886a4ea37881d9cc33d08b4842be94fa00dab150e649848cc97418149d341" }, "downloads": -1, "filename": "ribosome.tool-0.6.0.tar.gz", "has_sig": false, "md5_digest": "20400f7b7c418d4ee7c9c838b2685487", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 18582, "upload_time": "2019-05-10T21:31:50", "url": "https://files.pythonhosted.org/packages/fd/cf/d25c479ae3b2e68ce0fdd2527992b13dfdae1e2830b08cd56aaddd29a170/ribosome.tool-0.6.0.tar.gz" } ], "0.6.1": [ { "comment_text": "", "digests": { "md5": "9dac0cb3406683fbbba99e1df2287088", "sha256": "77bdd104b10101847b4d616668234891621ebb3ef3ec0dd5e1cf2ab0b355ff48" }, "downloads": -1, "filename": "ribosome.tool-0.6.1-py36-none-any.whl", "has_sig": false, "md5_digest": "9dac0cb3406683fbbba99e1df2287088", "packagetype": "bdist_wheel", "python_version": "py36", "requires_python": ">=3.6", "size": 21290, "upload_time": "2019-05-14T15:18:03", "url": "https://files.pythonhosted.org/packages/05/aa/c4a757d4bf2e22353404e0d73cbb4061da5f84b1f664967c13dccb518598/ribosome.tool-0.6.1-py36-none-any.whl" }, { "comment_text": "", "digests": { "md5": "86af2ec2e41c22695120769f199010f8", "sha256": "0f700a117f06e433d4513f125eb1fbf6d758728756c51aacaf897d0182f6f0e8" }, "downloads": -1, "filename": "ribosome.tool-0.6.1.tar.gz", "has_sig": false, "md5_digest": "86af2ec2e41c22695120769f199010f8", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 18558, "upload_time": "2019-05-14T15:18:05", "url": "https://files.pythonhosted.org/packages/7f/3c/7a0dbc4dc066562c06679aaa996ca7eec48b4dc32ed3ce392ccace327305/ribosome.tool-0.6.1.tar.gz" } ], "0.6.2": [ { "comment_text": "", "digests": { "md5": "f764ffb6f8c32b4cdefd760751c81395", "sha256": "9827886e651dbcffe2e6e6075cb505f39c6c1739000111c0eb64b91c61c8a617" }, "downloads": -1, "filename": "ribosome.tool-0.6.2-py36-none-any.whl", "has_sig": false, "md5_digest": "f764ffb6f8c32b4cdefd760751c81395", "packagetype": "bdist_wheel", "python_version": "py36", "requires_python": ">=3.6", "size": 21322, "upload_time": "2019-05-17T07:42:24", "url": "https://files.pythonhosted.org/packages/67/0a/513b8551e07c5cebfcc74d6b6a559686116d36203eec7341fbfb009e0529/ribosome.tool-0.6.2-py36-none-any.whl" }, { "comment_text": "", "digests": { "md5": "cd16a4d9bce0636417d24dbc9e098d99", "sha256": "2e730543c8d124e8b4cdb48e1e6aedfbed13c83a8e9ebb0ee5bbe5eedbe19de0" }, "downloads": -1, "filename": "ribosome.tool-0.6.2.tar.gz", "has_sig": false, "md5_digest": "cd16a4d9bce0636417d24dbc9e098d99", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 18591, "upload_time": "2019-05-17T07:42:26", "url": "https://files.pythonhosted.org/packages/1a/3e/cba7cf0d33f64d425215489a5d7b48f5d966f6bb2c7d91b8b62c07a636fd/ribosome.tool-0.6.2.tar.gz" } ], "0.6.3": [ { "comment_text": "", "digests": { "md5": "74a0250498e354bf6cf63b6e48ef33f6", "sha256": "45e4078dfc4be73ed66c860dd1602121363944ac64ece4984099e5f486920160" }, "downloads": -1, "filename": "ribosome.tool-0.6.3-py36-none-any.whl", "has_sig": false, "md5_digest": "74a0250498e354bf6cf63b6e48ef33f6", "packagetype": "bdist_wheel", "python_version": "py36", "requires_python": ">=3.6", "size": 21355, "upload_time": "2019-06-06T08:20:08", "url": "https://files.pythonhosted.org/packages/2a/81/e9ba75757c904ebf4661292e36ef19e797be44c0f0e31a4c7a0926dd9222/ribosome.tool-0.6.3-py36-none-any.whl" }, { "comment_text": "", "digests": { "md5": "eaead8b6460065f52abb5b9e291f26e5", "sha256": "003ae1c4daa31fd33736e394f2e9d0ec7d3d5d8948ee1e255b3811c0d8a44394" }, "downloads": -1, "filename": "ribosome.tool-0.6.3.tar.gz", "has_sig": false, "md5_digest": "eaead8b6460065f52abb5b9e291f26e5", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 19003, "upload_time": "2019-06-06T08:20:10", "url": "https://files.pythonhosted.org/packages/71/3a/bf3727a9537298b31fcc38f2beb8a1f35b4257500bbd530eebdc73d3c871/ribosome.tool-0.6.3.tar.gz" } ], "0.6.4": [ { "comment_text": "", "digests": { "md5": "04f4f6d28d371d8d1c7a3b843a3ab425", "sha256": "acec56fc20ad632f56a002ca81d2e21ec17cbd4787837a261f7e4e5923d03531" }, "downloads": -1, "filename": "ribosome.tool-0.6.4-py36-none-any.whl", "has_sig": false, "md5_digest": "04f4f6d28d371d8d1c7a3b843a3ab425", "packagetype": "bdist_wheel", "python_version": "py36", "requires_python": ">=3.6", "size": 21366, "upload_time": "2019-09-23T16:00:19", "url": "https://files.pythonhosted.org/packages/72/c3/92bd37de14c65644e9e3ccc4b1bf381c1d189a9661ef1e0d936b1baef75d/ribosome.tool-0.6.4-py36-none-any.whl" }, { "comment_text": "", "digests": { "md5": "5ae71089fe1d36b503f89675d587a14d", "sha256": "b5b4de81e04772ce402c01f070407a3df14d4c10baaead63a549f1c0f9f8240f" }, "downloads": -1, "filename": "ribosome.tool-0.6.4.tar.gz", "has_sig": false, "md5_digest": "5ae71089fe1d36b503f89675d587a14d", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 21787, "upload_time": "2019-09-23T16:00:21", "url": "https://files.pythonhosted.org/packages/d5/86/369f38b08e8415f26b1c97817fac2f0e1c9ec69c44b7d81529ef4e01c314/ribosome.tool-0.6.4.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "04f4f6d28d371d8d1c7a3b843a3ab425", "sha256": "acec56fc20ad632f56a002ca81d2e21ec17cbd4787837a261f7e4e5923d03531" }, "downloads": -1, "filename": "ribosome.tool-0.6.4-py36-none-any.whl", "has_sig": false, "md5_digest": "04f4f6d28d371d8d1c7a3b843a3ab425", "packagetype": "bdist_wheel", "python_version": "py36", "requires_python": ">=3.6", "size": 21366, "upload_time": "2019-09-23T16:00:19", "url": "https://files.pythonhosted.org/packages/72/c3/92bd37de14c65644e9e3ccc4b1bf381c1d189a9661ef1e0d936b1baef75d/ribosome.tool-0.6.4-py36-none-any.whl" }, { "comment_text": "", "digests": { "md5": "5ae71089fe1d36b503f89675d587a14d", "sha256": "b5b4de81e04772ce402c01f070407a3df14d4c10baaead63a549f1c0f9f8240f" }, "downloads": -1, "filename": "ribosome.tool-0.6.4.tar.gz", "has_sig": false, "md5_digest": "5ae71089fe1d36b503f89675d587a14d", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 21787, "upload_time": "2019-09-23T16:00:21", "url": "https://files.pythonhosted.org/packages/d5/86/369f38b08e8415f26b1c97817fac2f0e1c9ec69c44b7d81529ef4e01c314/ribosome.tool-0.6.4.tar.gz" } ] }