{ "info": { "author": "Shawn Chang", "author_email": "shawn420@gapp.nthu.edu.tw", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Topic :: Scientific/Engineering :: Artificial Intelligence", "Topic :: System :: Distributed Computing", "Topic :: System :: Installation/Setup", "Topic :: System :: Monitoring", "Topic :: Utilities" ], "description": "# Training Noodles\n\n[![documentation_link](https://img.shields.io/badge/docs-online-brightgreen.svg)](https://elsa-lab.github.io/training-noodles/) [![travis_build_status](https://travis-ci.org/elsa-lab/training-noodles.svg?branch=master)](https://travis-ci.org/elsa-lab/training-noodles)\n\nA simple and powerful tool to help training **multiple** programs on **multiple** servers with only one human.\n\n## Features\n\n* Automatically deploys experiments to available servers\n* No need to change any existing code\n* Considers CPU usage, GPU usage, memory usage, disk usage, and more\n* Uses only SSH protocol\n* Relies on minimal dependencies\n* Allows fast prototyping\n\n## Use Case\n\nIf we want to run 4 experiments on 3 servers, more specifically, we need to\n\n1. Upload the code to one of the servers which has low CPU usage\n2. Run the code on the server\n3. Download experimental results when they're ready\n\n![deployment_round_1](https://github.com/elsa-lab/training-noodles/raw/master/images/round_1.png)\n\nIn the first deployment round (See image above), Noodles will use the user-defined commands to check CPU usage on the servers.\n\nThe CPU usage is high on *Server 1* because there are some other programs running, so Noodles uses `scp` to upload the code *Code 1* and *Code 2*, and run them on *Server 2* and *Server 3* respectively.\n\nAs for how to upload the code, it's just a list of commands written by us, Noodles just follows the commands.\n\n![deployment_round_2](https://github.com/elsa-lab/training-noodles/raw/master/images/round_2.png)\n\nIn the second deployment round (See image above), we tell Noodles to check experimental results on all servers.\n\nNoodles finds that *Server 3* has just finished running *Code 2*, so it downloads the experimental results and process the data on local machine as we tell it to do so.\n\n![deployment_round_3](https://github.com/elsa-lab/training-noodles/raw/master/images/round_3.png)\n\nIn the third deployment round (See image above), *Code 3* and *Code 4* still need to be deployed. Noodles checks the CPU usage on all servers again. As *Server 1* has just become free now, Noodles can deploy *Code 3* and *Code 4* to *Server 1* and *Server 3* respectively.\n\nThe deployment round would continue until all experiments are successfully deployed. As in this case, Noodles will try to download and process the experimental results of *Code 1*, *Code 3* and *Code 4* in later rounds.\n\n## How Noodles Works\n\nThe general procedure is as follows:\n\n1. Initialize the list of experiments in **E**\n2. For each deployment round:\n 1. Initialize the list of servers in **S**\n 2. For each experiment in **E**:\n 1. Noodles runs user-defined requirements on each server in **S**\n 2. Noodles compares the metrics (results from the above step) to the user-defined expression\n 3. If the expression is satisfied:\n 1. Noodles runs the user-defined commands on the satisfied server\n 2. Remove the current experiment from **E**\n 3. Remove the satisfied server from **S**\n 4. If **S** is empty, break\n 3. If **E** is empty, break\n\nThe implementation of Noodles complies with the following rules:\n\n1. Simple (User can understand code and spec without looking documentation)\n2. Easy to debug (Noodles can take different actions when different error occurs)\n3. Stateless (The only state Noodles cares about is whether the deployment is successful or not, the states of the experiments must be handled by the user)\n\n## Documentation\n\nSee full documentation [here](https://elsa-lab.github.io/training-noodles/).\n\n## Prerequisites\n\n1. Linux-based terminals (For Windows, I recommend using [git-sdk](https://github.com/git-for-windows/build-extra/releases))\n2. Python 3.5 or higher\n\n## Installation\n\nRun the following command:\n\n```bash\npip install training-noodles\n```\n\n## Usage\n\n```bash\nnoodles \n```\n\nIt's just that simple.\n\n## Examples\n\nHere are some examples showing how Noodles is used:\n\n```bash\nnoodles run my_training.yml\nnoodles status my_training.yml\nnoodles monitor my_training.yml\nnoodles stop my_training.yml\nnoodles download my_training.yml\nnoodles upload my_training.yml\n...\n```\n\nYou can also choose only some experiments:\n\n```bash\nnoodles run \"my_training.yml:Experiment 1,Experiment 2\"\n```\n\nSee the example [Two Locals](https://github.com/elsa-lab/training-noodles/tree/master/examples/two_locals) to get started. See [Train TensorFlow Examples](https://github.com/elsa-lab/training-noodles/tree/master/examples/train_tensorflow_examples) for a more complex example.\n\n## Default Spec\n\nNoodles will use properties from default spec if the user spec doesn't specify them. See [training_noodles/specs/defaults.yml](https://github.com/elsa-lab/training-noodles/blob/master/training_noodles/specs/defaults.yml) for the default spec.\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/elsa-lab/training-noodles", "keywords": "training deployment tools noodles ssh", "license": "", "maintainer": "", "maintainer_email": "", "name": "training-noodles", "package_url": "https://pypi.org/project/training-noodles/", "platform": "", "project_url": "https://pypi.org/project/training-noodles/", "project_urls": { "Bug Reports": "https://github.com/elsa-lab/training-noodles/issues", "Homepage": "https://github.com/elsa-lab/training-noodles", "Source": "https://github.com/elsa-lab/training-noodles" }, "release_url": "https://pypi.org/project/training-noodles/1.2.0/", "requires_dist": [ "oyaml (==0.9)", "check-manifest ; extra == 'dev'", "coverage ; extra == 'test'" ], "requires_python": ">=3.5, <4", "summary": "Train multiple programs on multiple servers without pain", "version": "1.2.0" }, "last_serial": 5530563, "releases": { "1.0.1": [ { "comment_text": "", "digests": { "md5": "37d694e33c0125ef9635e508babb6f22", "sha256": "4d431375720881972de4b8017d4b7ca293141d7d924e8679242523d6c1ad7591" }, "downloads": -1, "filename": "training_noodles-1.0.1-py3-none-any.whl", "has_sig": false, "md5_digest": "37d694e33c0125ef9635e508babb6f22", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5, <4", "size": 4100, "upload_time": "2019-06-08T09:24:37", "url": "https://files.pythonhosted.org/packages/3d/c4/0ea46eb91e37904a380ad460fe6e23cd77d445e208351925177a59191aab/training_noodles-1.0.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "3bf5ecc779f8da797a6c50987134c514", "sha256": "9da3be7db62e9a1a5ceeaf3bd6b9a4edb0a8702ab37bc4ee560514e4876e2990" }, "downloads": -1, "filename": "training-noodles-1.0.1.tar.gz", "has_sig": false, "md5_digest": "3bf5ecc779f8da797a6c50987134c514", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5, <4", "size": 6685, "upload_time": "2019-06-08T09:24:39", "url": "https://files.pythonhosted.org/packages/12/bb/9ac3d3fe6d358c5d5e1f13754949b65f02a82961b726b38ff81c84280c05/training-noodles-1.0.1.tar.gz" } ], "1.0.10": [ { "comment_text": "", "digests": { "md5": "94fb05abe6c909ebe0e94ced5df1e9bb", "sha256": "ebbfe29c5d62c548e5ccf185d2664d7f1eeafb69807b53b7ce192653d966d7c4" }, "downloads": -1, "filename": "training_noodles-1.0.10-py3-none-any.whl", "has_sig": false, "md5_digest": "94fb05abe6c909ebe0e94ced5df1e9bb", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5, <4", "size": 27888, "upload_time": "2019-06-14T05:14:31", "url": "https://files.pythonhosted.org/packages/59/7d/59012f516ae6c3979f2520d7d6a5210e526e462c677e54d13e4fe561b9e2/training_noodles-1.0.10-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "1eac1026ef0c08e63b5b88e9a33e051c", "sha256": "7351daff07c8097e9a8a1d7a2be43698227bef6322eb023445d48e32e58fcc02" }, "downloads": -1, "filename": "training-noodles-1.0.10.tar.gz", "has_sig": false, "md5_digest": "1eac1026ef0c08e63b5b88e9a33e051c", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5, <4", "size": 28498, "upload_time": "2019-06-14T05:14:33", "url": "https://files.pythonhosted.org/packages/4d/b0/4176e70435e96feb8bd340c8c227b0361a07a13295c53765baa70589da41/training-noodles-1.0.10.tar.gz" } ], "1.0.11": [ { "comment_text": "", "digests": { "md5": "9259c5acc665008b9e534b23eb64fa90", "sha256": "7efe0d70a163a33f284019ceb69904d2463010ca3867fb1c733d43c6a867006c" }, "downloads": -1, "filename": "training_noodles-1.0.11-py3-none-any.whl", "has_sig": false, "md5_digest": "9259c5acc665008b9e534b23eb64fa90", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5, <4", "size": 28223, "upload_time": "2019-06-14T07:10:19", "url": "https://files.pythonhosted.org/packages/26/b4/4a3efc28091806b0f3aa847d67fe8c222abb15554c38d6afbbe9d80da832/training_noodles-1.0.11-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "3efa8687c46111b3e24b6c43c167f693", "sha256": "5158150fdfcfe312a4dc8b6284e3f8da501df8e69428b6585c174a10b1041901" }, "downloads": -1, "filename": "training-noodles-1.0.11.tar.gz", "has_sig": false, "md5_digest": "3efa8687c46111b3e24b6c43c167f693", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5, <4", "size": 28861, "upload_time": "2019-06-14T07:10:20", "url": "https://files.pythonhosted.org/packages/a5/ed/fdde4776ebf90602e7cfad76b1509c0051293b2cae35c120507fd5502ee1/training-noodles-1.0.11.tar.gz" } ], "1.0.12": [ { "comment_text": "", "digests": { "md5": "4da26ca7487cc0165cd3b3d5baa69d57", "sha256": "49a0ba097fff9806d017c657c813a29d6758d660ed580950ef55bd0e6eccd0f7" }, "downloads": -1, "filename": "training_noodles-1.0.12-py3-none-any.whl", "has_sig": false, "md5_digest": "4da26ca7487cc0165cd3b3d5baa69d57", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5, <4", "size": 28340, "upload_time": "2019-06-14T07:53:10", "url": "https://files.pythonhosted.org/packages/ad/4e/40b6f9821be47e4b5fb3dbb2610e502da70f17745424b5c22653b796217b/training_noodles-1.0.12-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "70d866ffaab8361bef90d23ca70aae81", "sha256": "b4bb87377ce80f2fbe7f2f1292632b7f98408d22d568ceee59e75df816e6df2e" }, "downloads": -1, "filename": "training-noodles-1.0.12.tar.gz", "has_sig": false, "md5_digest": "70d866ffaab8361bef90d23ca70aae81", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5, <4", "size": 28928, "upload_time": "2019-06-14T07:53:11", "url": "https://files.pythonhosted.org/packages/2c/05/9cde18bdd13c5f89680139c35df158743044283ebfff9b235a1b55aabaa1/training-noodles-1.0.12.tar.gz" } ], "1.0.13": [ { "comment_text": "", "digests": { "md5": "028584a0ea8677c99b5e60a6a6d55ce5", "sha256": "56c75a8a434929ac63560748dd38d49f189ec2cf81717a9c0cc6f2ea846853bf" }, "downloads": -1, "filename": "training_noodles-1.0.13-py3-none-any.whl", "has_sig": false, "md5_digest": "028584a0ea8677c99b5e60a6a6d55ce5", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5, <4", "size": 28733, "upload_time": "2019-06-14T15:21:41", "url": "https://files.pythonhosted.org/packages/0f/f4/27872e9054f3badde0a544207067ab89af6405c8f2cc75bf35869fc18e52/training_noodles-1.0.13-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "bbf6df5572d99d56e8c6edc74e3421d1", "sha256": "4fbd5ad3100afd7f46102d384d1eafa9422927134537a1d43e1cd8d137300d6e" }, "downloads": -1, "filename": "training-noodles-1.0.13.tar.gz", "has_sig": false, "md5_digest": "bbf6df5572d99d56e8c6edc74e3421d1", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5, <4", "size": 29277, "upload_time": "2019-06-14T15:21:43", "url": "https://files.pythonhosted.org/packages/83/f9/6eec5cc5dad640c8bd1e252f5612cb0a3411d0a3342599e186002f2da583/training-noodles-1.0.13.tar.gz" } ], "1.0.14": [ { "comment_text": "", "digests": { "md5": "9f150297601e27bb34e6301acfff26e2", "sha256": "5816741dcafefd3daa7d999bada2a1626258d4399a06382c708241f6504fca5b" }, "downloads": -1, "filename": "training_noodles-1.0.14-py3-none-any.whl", "has_sig": false, "md5_digest": "9f150297601e27bb34e6301acfff26e2", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5, <4", "size": 28816, "upload_time": "2019-06-15T07:42:14", "url": "https://files.pythonhosted.org/packages/7b/45/8ef8d343d4fa5f92515b76559b6b0d77d6dcf262fdff6ac3304a1a25a851/training_noodles-1.0.14-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "8f27340b0de1eee7660e63330750f8b6", "sha256": "73ce066dde77df5af1ab8f3d87b6bb5bc3dd81c469a7b005ff08155580a33689" }, "downloads": -1, "filename": "training-noodles-1.0.14.tar.gz", "has_sig": false, "md5_digest": "8f27340b0de1eee7660e63330750f8b6", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5, <4", "size": 29422, "upload_time": "2019-06-15T07:42:16", "url": "https://files.pythonhosted.org/packages/54/82/ed0c72fce0fa5a14d030fcbee2af6431cfcfab877b3adc40ab1a50b5d78b/training-noodles-1.0.14.tar.gz" } ], "1.0.15": [ { "comment_text": "", "digests": { "md5": "f3a9683143acd683789b9cef057a44a9", "sha256": "262b8e786cb9011b211bf151b10fc6c12fead515627a8258b8c31ff90a869efe" }, "downloads": -1, "filename": "training_noodles-1.0.15-py3-none-any.whl", "has_sig": false, "md5_digest": "f3a9683143acd683789b9cef057a44a9", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5, <4", "size": 34788, "upload_time": "2019-06-20T04:15:46", "url": "https://files.pythonhosted.org/packages/6e/37/af6cbf1ed65f71bd1d7ee0f332de80ba636cdf83a78e8c82a5ce05d71eba/training_noodles-1.0.15-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "7f4f7a6cc9c5d2ae34cd4b1969daa4ae", "sha256": "8bc9a2b5ebd93373961d4dba1fb317d5a7499f13ed970e26454990477e8d4ad0" }, "downloads": -1, "filename": "training-noodles-1.0.15.tar.gz", "has_sig": false, "md5_digest": "7f4f7a6cc9c5d2ae34cd4b1969daa4ae", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5, <4", "size": 32582, "upload_time": "2019-06-20T04:15:48", "url": "https://files.pythonhosted.org/packages/3b/a0/21e00aacbc671e4525edee53d0a6464053bc0121b3eb632b74e78d25bfdc/training-noodles-1.0.15.tar.gz" } ], "1.0.16": [ { "comment_text": "", "digests": { "md5": "c7134c7ec62615f94425cd1ecdeac08a", "sha256": "4cd71e6ab3cbc4a1516ea0402089b3da97621b5bf0101af3b6f2d1507960b275" }, "downloads": -1, "filename": "training_noodles-1.0.16-py3-none-any.whl", "has_sig": false, "md5_digest": "c7134c7ec62615f94425cd1ecdeac08a", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5, <4", "size": 34798, "upload_time": "2019-06-20T05:02:01", "url": "https://files.pythonhosted.org/packages/21/a1/8be14fb467f8fbdbd976824a72d5d43f72aa3c15e223d97b8205268248a4/training_noodles-1.0.16-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c926dea3ab3635f1c78e02cec397113d", "sha256": "9ce4828eaf94b029ca9f5d3b184e37e8e707e04e061c9e0eb36aa372e4db6cf3" }, "downloads": -1, "filename": "training-noodles-1.0.16.tar.gz", "has_sig": false, "md5_digest": "c926dea3ab3635f1c78e02cec397113d", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5, <4", "size": 32605, "upload_time": "2019-06-20T05:02:04", "url": "https://files.pythonhosted.org/packages/34/99/f8e83ef8ed08bf913b1be63af7cc7586bc59736adde88c69387fd3e1dd36/training-noodles-1.0.16.tar.gz" } ], "1.0.2": [ { "comment_text": "", "digests": { "md5": "5f1213ad6aafd4edf4a4f3a1ac6c0b6f", "sha256": "a4babf88d2c51868170e24026c1bfffc5710282e044ef597f139babf5b7443d5" }, "downloads": -1, "filename": "training_noodles-1.0.2-py3-none-any.whl", "has_sig": false, "md5_digest": "5f1213ad6aafd4edf4a4f3a1ac6c0b6f", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5, <4", "size": 24361, "upload_time": "2019-06-08T09:45:42", "url": "https://files.pythonhosted.org/packages/31/ea/c631aaebd8024ce4b0945bb79d13261679f90c6fabf78448324dcf9c4ffd/training_noodles-1.0.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "cb2c525f3ae2f6ac8fd269a5b850cc44", "sha256": "fde1e031cf785e369aefcde684c36542f7f94c200031d5ecba9bbb6c6593dc59" }, "downloads": -1, "filename": "training-noodles-1.0.2.tar.gz", "has_sig": false, "md5_digest": "cb2c525f3ae2f6ac8fd269a5b850cc44", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5, <4", "size": 25434, "upload_time": "2019-06-08T09:45:43", "url": "https://files.pythonhosted.org/packages/2a/60/8c3b7b032ebb3c3ceb5b7ee0f9ee9204d9ccd42552e566b323ddede6fded/training-noodles-1.0.2.tar.gz" } ], "1.0.3": [ { "comment_text": "", "digests": { "md5": "50bcd5377767c2a9ca97d1e8bc364e1b", "sha256": "1dbde130ca9f72451f7e8fc45ef868cfb63072432f9ba2cba02829b7f9a86f6c" }, "downloads": -1, "filename": "training_noodles-1.0.3-py3-none-any.whl", "has_sig": false, "md5_digest": "50bcd5377767c2a9ca97d1e8bc364e1b", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5, <4", "size": 24480, "upload_time": "2019-06-08T10:08:03", "url": "https://files.pythonhosted.org/packages/f8/49/bd58ae54ea40d434955807f3032383d2c28119894ceaa320e9593c0ab692/training_noodles-1.0.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f6fd798d2090f1436a26a00195ef9f8d", "sha256": "36394a4a7fef0281d3524cc08366363ba1b13378e14da238393c9ea3df108118" }, "downloads": -1, "filename": "training-noodles-1.0.3.tar.gz", "has_sig": false, "md5_digest": "f6fd798d2090f1436a26a00195ef9f8d", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5, <4", "size": 25536, "upload_time": "2019-06-08T10:08:05", "url": "https://files.pythonhosted.org/packages/e5/ec/6d0cd1299aaef5649bee2cf6a3971e8074d7885d11a665fc5951a2985ae6/training-noodles-1.0.3.tar.gz" } ], "1.0.4": [ { "comment_text": "", "digests": { "md5": "8aee8534677988a129225c72e4a3b5fa", "sha256": "299ff1b765e9aabc19c7065bef06228f9be04e251c01deaf035ddb25101762b4" }, "downloads": -1, "filename": "training_noodles-1.0.4-py3-none-any.whl", "has_sig": false, "md5_digest": "8aee8534677988a129225c72e4a3b5fa", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5, <4", "size": 24493, "upload_time": "2019-06-08T12:17:46", "url": "https://files.pythonhosted.org/packages/b4/df/72cd2d86d4db1a3287f8a6deb66ee848ea1d5f55bd10dc9a60c348a35998/training_noodles-1.0.4-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "34a27a17548f178e222409a4ab1f63e3", "sha256": "a2825e034ed22729fe277eaee341aac9d38b7ae7a40a4eab04d2ceb655daab1b" }, "downloads": -1, "filename": "training-noodles-1.0.4.tar.gz", "has_sig": false, "md5_digest": "34a27a17548f178e222409a4ab1f63e3", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5, <4", "size": 25572, "upload_time": "2019-06-08T12:17:47", "url": "https://files.pythonhosted.org/packages/1d/8a/8400c55e3e59d5b4c51dec51b5632d326b615397ca1ce38e813a54442431/training-noodles-1.0.4.tar.gz" } ], "1.0.5": [ { "comment_text": "", "digests": { "md5": "4daefc01a03894c498b7e24ccee437b1", "sha256": "bd819ada0395f5ce481d037a2fe5acc4e8a30896af91cd4e8bf9e19e0f5cfdac" }, "downloads": -1, "filename": "training_noodles-1.0.5-py3-none-any.whl", "has_sig": false, "md5_digest": "4daefc01a03894c498b7e24ccee437b1", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5, <4", "size": 24563, "upload_time": "2019-06-08T12:48:58", "url": "https://files.pythonhosted.org/packages/55/34/fa38835d1256287922095395cbe4ed1923a143e056acdd4f91007633565c/training_noodles-1.0.5-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "0a5c92a944484fb09fa3f9cc81a905dd", "sha256": "15f7f685c613804d3eed138abc2f5ccd927c386c1a53034fa8f7a1c69eeaa2b2" }, "downloads": -1, "filename": "training-noodles-1.0.5.tar.gz", "has_sig": false, "md5_digest": "0a5c92a944484fb09fa3f9cc81a905dd", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5, <4", "size": 25686, "upload_time": "2019-06-08T12:49:01", "url": "https://files.pythonhosted.org/packages/26/78/ace018a7da723efdc7fe8691c4f86366e81d9d03302fc399b105b89d5ed4/training-noodles-1.0.5.tar.gz" } ], "1.0.6": [ { "comment_text": "", "digests": { "md5": "4391df8f9c46e09ee2bf8459872cc7d8", "sha256": "ce401ad6f9bc8b86fd6becd8d55a8247671598d2b695799149deaa2e77b36f74" }, "downloads": -1, "filename": "training_noodles-1.0.6-py3-none-any.whl", "has_sig": false, "md5_digest": "4391df8f9c46e09ee2bf8459872cc7d8", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5, <4", "size": 26111, "upload_time": "2019-06-09T11:23:45", "url": "https://files.pythonhosted.org/packages/a8/05/68c497b47460e5a542ba7c1203cf2fa092522c7b26e70d34355cb9ea6016/training_noodles-1.0.6-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "3d541beaa3846419fb570d25e7cfe357", "sha256": "0e064b380fa7573eaa981aaae094ecd8731e8d82ef9f5c01cb108042930f8da6" }, "downloads": -1, "filename": "training-noodles-1.0.6.tar.gz", "has_sig": false, "md5_digest": "3d541beaa3846419fb570d25e7cfe357", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5, <4", "size": 27016, "upload_time": "2019-06-09T11:23:46", "url": "https://files.pythonhosted.org/packages/30/ea/14204474a1f2a7af6ad69c10434457218750c5b6dca0b46dfa29c1895f99/training-noodles-1.0.6.tar.gz" } ], "1.0.7": [ { "comment_text": "", "digests": { "md5": "a659ec957496fab277c7bf9b2c52dae4", "sha256": "f96567f010d599e6627a78326123ee052feb5ea35f5f4bcec4981bce9c8cf33b" }, "downloads": -1, "filename": "training_noodles-1.0.7-py3-none-any.whl", "has_sig": false, "md5_digest": "a659ec957496fab277c7bf9b2c52dae4", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5, <4", "size": 26142, "upload_time": "2019-06-11T08:07:25", "url": "https://files.pythonhosted.org/packages/de/3a/c0311dca15fac21c382c66c5ea9972de71967bac57972b9bdf5fbad9c3a4/training_noodles-1.0.7-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "4ab31ba6fbbc2d875277e12b57c2caea", "sha256": "1ff0307e8ae6f0e5c7e55aa941a97cce462e740652919fe95c4371f9b974b2e1" }, "downloads": -1, "filename": "training-noodles-1.0.7.tar.gz", "has_sig": false, "md5_digest": "4ab31ba6fbbc2d875277e12b57c2caea", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5, <4", "size": 27083, "upload_time": "2019-06-11T08:07:27", "url": "https://files.pythonhosted.org/packages/f9/ca/dc033890fea2e2929a4c527ccce0ab17e216a6db1486317c2b00ec6861a8/training-noodles-1.0.7.tar.gz" } ], "1.0.8": [ { "comment_text": "", "digests": { "md5": "065c6a5b7a23596eb526fcd1ae0c4408", "sha256": "c900472729570543fcea919a957963ceacb5b0f8560e4a1e6bcbe576b89d51c3" }, "downloads": -1, "filename": "training_noodles-1.0.8-py3-none-any.whl", "has_sig": false, "md5_digest": "065c6a5b7a23596eb526fcd1ae0c4408", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5, <4", "size": 26371, "upload_time": "2019-06-11T13:27:21", "url": "https://files.pythonhosted.org/packages/56/c6/82c3182fc3c0d7fb22a14b1fc3378c1adc19d046bb72d6466b2dcbf75a87/training_noodles-1.0.8-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d9be78d740f87ced9634bf8e8fa71070", "sha256": "5f7a062a27e0317f27cfda3f7f0b5f5511876fbf3aff7a7c40a8c45163c3d584" }, "downloads": -1, "filename": "training-noodles-1.0.8.tar.gz", "has_sig": false, "md5_digest": "d9be78d740f87ced9634bf8e8fa71070", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5, <4", "size": 27402, "upload_time": "2019-06-11T13:27:24", "url": "https://files.pythonhosted.org/packages/5c/53/50027e5b27c0ee2bf20022a6b010c5a8c2b8f79379a40e3e300e08ce6216/training-noodles-1.0.8.tar.gz" } ], "1.0.9": [ { "comment_text": "", "digests": { "md5": "9ead0a309638ff2080a10752187db358", "sha256": "ef44ffea037ab2ae343fc6a0bbd3b99f33b59a15ced4d0c3e5d01fc627e285d1" }, "downloads": -1, "filename": "training_noodles-1.0.9-py3-none-any.whl", "has_sig": false, "md5_digest": "9ead0a309638ff2080a10752187db358", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5, <4", "size": 26397, "upload_time": "2019-06-11T15:54:36", "url": "https://files.pythonhosted.org/packages/a6/3e/2be60750e1a59553488893e471ddfd68b83254bf04a4ad41733fba105da3/training_noodles-1.0.9-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "8a682f63ccebcfbd0ba4820d056dadf8", "sha256": "cea8006107f94cf6f29943bb9bd7af4df4f3ea836381f8102e5b75d00bf62d9e" }, "downloads": -1, "filename": "training-noodles-1.0.9.tar.gz", "has_sig": false, "md5_digest": "8a682f63ccebcfbd0ba4820d056dadf8", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5, <4", "size": 27428, "upload_time": "2019-06-11T15:54:38", "url": "https://files.pythonhosted.org/packages/3c/c3/9644833053d4d5715c335fccc31b8d9639d20c3756242b46c2ca08b9b4be/training-noodles-1.0.9.tar.gz" } ], "1.1.0": [ { "comment_text": "", "digests": { "md5": "0967c9e88b561499ec3f4398e41c645d", "sha256": "51b8f39d05ad5bacb0c8501865f433b4cab0ff9fb23704de2e5331cfb61c4bce" }, "downloads": -1, "filename": "training_noodles-1.1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "0967c9e88b561499ec3f4398e41c645d", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5, <4", "size": 35686, "upload_time": "2019-06-20T10:53:39", "url": "https://files.pythonhosted.org/packages/6a/a2/f15856549dce7ebb2cf807eff77d9c821b405c117cdb153d0b5c006b0ba5/training_noodles-1.1.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "80efc06db2e284c8e82419c1bc64a8c2", "sha256": "323af5986d37dd84accdfcb3223d4d3260e299017725c1f196183f5d2eae3919" }, "downloads": -1, "filename": "training-noodles-1.1.0.tar.gz", "has_sig": false, "md5_digest": "80efc06db2e284c8e82419c1bc64a8c2", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5, <4", "size": 33417, "upload_time": "2019-06-20T10:53:41", "url": "https://files.pythonhosted.org/packages/e7/45/680d80ea033a0fa397a3f454ed72706034f472a674b8e86db79395bcf53c/training-noodles-1.1.0.tar.gz" } ], "1.1.1": [ { "comment_text": "", "digests": { "md5": "d27d4d1bccc88c9172385c06c53414e4", "sha256": "fbe022caf1ae16b4140668148d61bfd4e81931c458dc4de40e8331078330829e" }, "downloads": -1, "filename": "training_noodles-1.1.1-py3-none-any.whl", "has_sig": false, "md5_digest": "d27d4d1bccc88c9172385c06c53414e4", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5, <4", "size": 35748, "upload_time": "2019-07-14T09:26:21", "url": "https://files.pythonhosted.org/packages/5c/14/ac0eca7d5a6f8cb75eb53d2b803d8d7f8afd7e8b6a8dc0073311c0e0cc88/training_noodles-1.1.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a8c4241ce766b36d96a5f2eace9567a6", "sha256": "aecdc096954be7752f254cf6cf9b42f39f150ab2cee0374e2f0d71f9a76bcf13" }, "downloads": -1, "filename": "training-noodles-1.1.1.tar.gz", "has_sig": false, "md5_digest": "a8c4241ce766b36d96a5f2eace9567a6", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5, <4", "size": 33497, "upload_time": "2019-07-14T09:26:23", "url": "https://files.pythonhosted.org/packages/81/4a/ad91b2c89bd4cafdb6e056a8c47c461bfd5d08c019091783c379cbebc8a2/training-noodles-1.1.1.tar.gz" } ], "1.2.0": [ { "comment_text": "", "digests": { "md5": "695c329bcf092212956c0c01a3188b23", "sha256": "3226d5cba0b5ddd0651ddbd639e89d8c4a35638bead69fd13f045696c86c3d9e" }, "downloads": -1, "filename": "training_noodles-1.2.0-py3-none-any.whl", "has_sig": false, "md5_digest": "695c329bcf092212956c0c01a3188b23", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5, <4", "size": 35744, "upload_time": "2019-07-14T09:49:33", "url": "https://files.pythonhosted.org/packages/6f/ae/91eb2be32d5461fc82c873760a9bbe8284bb81ca11b23474f022481f5585/training_noodles-1.2.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c763a049f888cc503c94f6ea0505bdb1", "sha256": "b2b71bf4115fc289942f1e237cd735dec7d00e7b895407403a147258921aa8e3" }, "downloads": -1, "filename": "training-noodles-1.2.0.tar.gz", "has_sig": false, "md5_digest": "c763a049f888cc503c94f6ea0505bdb1", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5, <4", "size": 33501, "upload_time": "2019-07-14T09:49:35", "url": "https://files.pythonhosted.org/packages/b5/5a/e30818700235e0851fa517f9bdf8eb3858ebc170b5a08c04dd252c59716a/training-noodles-1.2.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "695c329bcf092212956c0c01a3188b23", "sha256": "3226d5cba0b5ddd0651ddbd639e89d8c4a35638bead69fd13f045696c86c3d9e" }, "downloads": -1, "filename": "training_noodles-1.2.0-py3-none-any.whl", "has_sig": false, "md5_digest": "695c329bcf092212956c0c01a3188b23", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5, <4", "size": 35744, "upload_time": "2019-07-14T09:49:33", "url": "https://files.pythonhosted.org/packages/6f/ae/91eb2be32d5461fc82c873760a9bbe8284bb81ca11b23474f022481f5585/training_noodles-1.2.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c763a049f888cc503c94f6ea0505bdb1", "sha256": "b2b71bf4115fc289942f1e237cd735dec7d00e7b895407403a147258921aa8e3" }, "downloads": -1, "filename": "training-noodles-1.2.0.tar.gz", "has_sig": false, "md5_digest": "c763a049f888cc503c94f6ea0505bdb1", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5, <4", "size": 33501, "upload_time": "2019-07-14T09:49:35", "url": "https://files.pythonhosted.org/packages/b5/5a/e30818700235e0851fa517f9bdf8eb3858ebc170b5a08c04dd252c59716a/training-noodles-1.2.0.tar.gz" } ] }