{ "info": { "author": "Joongi Kim", "author_email": "me@daybreaker.info", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "Framework :: AsyncIO", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Programming Language :: Python", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Topic :: Software Development" ], "description": "aiotools\n========\n\n[![PyPI release version](https://badge.fury.io/py/aiotools.svg)](https://pypi.org/project/aiotools/)\n![Supported Python versions](https://img.shields.io/pypi/pyversions/aiotools.svg)\n[![Build Status](https://travis-ci.org/achimnol/aiotools.svg?branch=master)](https://travis-ci.org/achimnol/aiotools)\n[![Code Coverage](https://codecov.io/gh/achimnol/aiotools/branch/master/graph/badge.svg)](https://codecov.io/gh/achimnol/aiotools)\n\nIdiomatic asyncio utilties\n\n*NOTE:* This project is under early stage of developement. The public APIs may break version by version.\n\n\nModules\n-------\n\n* [Async Context Manager](http://aiotools.readthedocs.io/en/latest/aiotools.context.html)\n* [Async Functools](http://aiotools.readthedocs.io/en/latest/aiotools.func.html)\n* [Async Itertools](http://aiotools.readthedocs.io/en/latest/aiotools.iter.html)\n* [Async Server](http://aiotools.readthedocs.io/en/latest/aiotools.server.html)\n* [Async Timer](http://aiotools.readthedocs.io/en/latest/aiotools.timer.html)\n\nI also recommend to try the following asyncio libraries for your happier life.\n\n* [async_timeout](https://github.com/aio-libs/async-timeout): Provides a light-weight timeout wrapper that does not spawn subtasks.\n* [aiojobs](https://github.com/aio-libs/aiojobs): Provides a concurrency-limited scheduler for asyncio tasks with graceful shutdown.\n* [trio](https://github.com/python-trio/trio): An alternative implementation of asynchronous IO stack for Python, with focus on cancellation scopes and task groups called \"nursery\".\n\n\nExamples\n--------\n\n### Async Context Manager\n\nThis is an asynchronous version of `contextlib.contextmanager` to make it\neasier to write asynchronous context managers without creating boilerplate\nclasses.\n\n```python\nimport asyncio\nimport aiotools\n\n@aiotools.actxmgr\nasync def mygen(a):\n await asyncio.sleep(1)\n yield a + 1\n await asyncio.sleep(1)\n\nasync def somewhere():\n async with mygen(1) as b:\n assert b == 2\n```\n\nNote that you need to wrap `yield` with a try-finally block to\nensure resource releases (e.g., locks), even in the case when\nan exception is ocurred inside the async-with block.\n\n```python\nimport asyncio\nimport aiotools\n\nlock = asyncio.Lock()\n\n@aiotools.actxmgr\nasync def mygen(a):\n await lock.acquire()\n try:\n yield a + 1\n finally:\n lock.release()\n\nasync def somewhere():\n try:\n async with mygen(1) as b:\n raise RuntimeError('oops')\n except RuntimeError:\n print('caught!') # you can catch exceptions here.\n```\n\nYou can also create a group of async context managers, which\nare entered/exited all at once using `asyncio.gather()`.\n\n```python\nimport asyncio\nimport aiotools\n\n@aiotools.actxmgr\nasync def mygen(a):\n yield a + 10\n\nasync def somewhere():\n ctxgrp = aiotools.actxgroup(mygen(i) for i in range(10))\n async with ctxgrp as values:\n assert len(values) == 10\n for i in range(10):\n assert values[i] == i + 10\n```\n\n### Async Server\n\nThis implements a common pattern to launch asyncio-based server daemons.\n\n```python\nimport asyncio\nimport aiotools\n\nasync def echo(reader, writer):\n data = await reader.read(100)\n writer.write(data)\n await writer.drain()\n writer.close()\n\n@aiotools.server\nasync def myworker(loop, pidx, args):\n server = await asyncio.start_server(echo, '0.0.0.0', 8888,\n reuse_port=True, loop=loop)\n print(f'[{pidx}] started')\n yield # wait until terminated\n server.close()\n await server.wait_closed()\n print(f'[{pidx}] terminated')\n\nif __name__ == '__main__':\n # Run the above server using 4 worker processes.\n aiotools.start_server(myworker, num_workers=4)\n```\n\nIt handles SIGINT/SIGTERM signals automatically to stop the server,\nas well as lifecycle management of event loops running on multiple processes.\n\n\n### Async Timer\n\n```python\nimport aiotools\n\ni = 0\n\nasync def mytick(interval):\n print(i)\n i += 1\n\nasync def somewhere():\n t = aiotools.create_timer(mytick, 1.0)\n ...\n t.cancel()\n await t\n```\n\n`t` is an `asyncio.Task` object.\nTo stop the timer, call `t.cancel(); await t`.\nPlease don't forget `await`-ing `t` because it requires extra steps to\ncancel and await all pending tasks.\nTo make your timer function to be cancellable, add a try-except clause\ncatching `asyncio.CancelledError` since we use it as a termination\nsignal.\n\nYou may add `TimerDelayPolicy` argument to control the behavior when the\ntimer-fired task takes longer than the timer interval.\n`DEFAULT` is to accumulate them and cancel all the remainings at once when\nthe timer is cancelled.\n`CANCEL` is to cancel any pending previously fired tasks on every interval.\n\n```python\nimport asyncio\nimport aiotools\n\nasync def mytick(interval):\n await asyncio.sleep(100) # cancelled on every next interval.\n\nasync def somewhere():\n t = aiotools.create_timer(mytick, 1.0, aiotools.TimerDelayPolicy.CANCEL)\n ...\n t.cancel()\n await t\n```\n\nChangelog\n=========\n\n0.8.3 (2019-10-07)\n------------------\n\n- context: Fix `aclosing()`'s `__aexit__()` exception arguments.\n\n0.8.2 (2019-08-28)\n------------------\n\n- context, server: Catch asyncio.CancelledError along with BaseException to\n make the cancellation behavior consistent in Python 3.6, 3.7, and 3.8.\n\n0.8.1 (2019-02-24)\n------------------\n\n- server: Fix yields of the received stop signal in main/worker context managers\n when using threaded workers.\n\n0.8.0 (2018-11-18)\n------------------\n\n- server: Updated stop signal handling and now user-defined worker/main context\n managers have a way to distinguish the stop signal received. See the updated\n docs for more details.\n\n0.7.3 (2018-10-16)\n------------------\n\n- This ia a technical release to fix a test case preventing the automated CI\n release procedure.\n\n0.7.2 (2018-10-16)\n------------------\n\n- Improve support for Python 3.6/3.7 using a small compatibility module against asyncio.\n\n- func: Add `expire_after` option to `lru_cache()` function.\n\n0.7.1 (2018-08-24)\n------------------\n\n- Minor updates to the documentation\n\n0.7.0 (2018-08-24)\n------------------\n\n- Add support for Python 3.7\n\n- context: Updated to work like Python 3.7\n\n- context: Deprecated `AsyncContextDecorator` stuffs in Python 3.7+\n\n- context: Added an alias to `contextlib.AsyncExitStack` in the standard library.\n\n0.6.0 (2018-04-10)\n------------------\n\n- Introduce a new module `aiotools.iter` with `aiter()` function which\n corresponds to an async version of the builtin `iter()`.\n\n0.5.4 (2018-02-01)\n------------------\n\n- server: Remove use of unncessary setpgrp syscall, which is also blocked by\n Docker's default seccomp profile!\n\n0.5.3 (2018-01-12)\n------------------\n\n- server: Ooops! (a finally block should have been an else block)\n\n0.5.2 (2018-01-12)\n------------------\n\n- server: Improve inner beauty (code readability)\n\n- server: Improve reliability and portability of worker-to-main interrupts\n\n0.5.1 (2018-01-11)\n------------------\n\n- server: Fix a race condition related to handling of worker\n initialization errors with multiple workers\n\n0.5.0 (2017-11-08)\n------------------\n\n- func: Add `lru_cache()` which is a coroutine version of\n `functools.lru_cache()`\n\n0.4.5 (2017-10-14)\n------------------\n\n- server: Fix a race condition related to signal handling in the\n multiprocessing module during termination\n\n- server: Improve error handling during initialization of workers\n (automatic shutdown of other workers and the main loop after\n logging the exception)\n\n0.4.4 (2017-09-12)\n------------------\n\n- Add a new module `aiotools.func` with `apartial()` function which is an\n async version of `functools.partial()` in the standard library\n\n0.4.3 (2017-08-06)\n------------------\n\n- Add `aclosing()` context manager like `closing()` in the standard library\n\n- Speed up Travis CI builds for packaging\n\n- Now provide README in rst as well as CHANGES (this file)\n\n0.4.2 (2017-08-01)\n------------------\n\n- `server`: Fix spawning subprocesses in child workers\n\n- Add support for `uvloop`\n\n0.4.0 (2017-08-01)\n------------------\n\n- Add `use_threading` argument to \n\n- Add initial documentation (which currently not served\n on readthedocs.io due to Python version problem)\n\n0.3.2 (2017-07-31)\n------------------\n\n- Add `extra_procs` argument to `start_server()` function\n\n- Add socket and ZeroMQ server examples\n\n- Improve CI configs\n\n0.3.1 (2017-07-26)\n------------------\n\n- Improve CI scripts\n\n- Adopt editorconfig\n\n0.3.0 (2017-04-26)\n------------------\n\n- Add `start_server()` function using multiprocessing\n with automatic children lifecycle management\n\n- Clarify the semantics of `AsyncContextGroup` using\n `asyncio.gather()` with `return_exceptions=True`\n\n0.2.0 (2017-04-20)\n------------------\n\n- Add abstract types for `AsyncContextManager`\n\n- Rename `AsyncGenContextManager` to `AsyncContextManager`\n\n- Add `AsyncContextGroup`\n\n0.1.1 (2017-04-14)\n------------------\n\n- Initial release\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/achimnol/aiotools", "keywords": "", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "aiotools", "package_url": "https://pypi.org/project/aiotools/", "platform": "any", "project_url": "https://pypi.org/project/aiotools/", "project_urls": { "CI: AppVeyor": "https://ci.appveyor.com/project/achimnol/aiotools", "CI: Travis": "https://travis-ci.com/achimnol/aiotools", "Code Coverage": "https://codecov.io/github/achimnol/aiotools", "Documentation": "https://aiotools.readthedocs.io", "Homepage": "https://github.com/achimnol/aiotools", "Source": "https://github.com/achimnol/aiotools", "Tracker": "https://github.com/achimnol/aiotools/issues" }, "release_url": "https://pypi.org/project/aiotools/0.8.3/", "requires_dist": [ "setuptools (>=40.1.0) ; extra == 'build'", "wheel (>=0.31.0) ; extra == 'build'", "twine (>=1.11.0) ; extra == 'build'", "pytest-sugar ; extra == 'dev'", "sphinx ; extra == 'docs'", "sphinx-autodoc-typehints ; extra == 'docs'", "guzzle-sphinx-theme ; extra == 'docs'", "pytest (~=5.1.0) ; extra == 'test'", "pytest-asyncio (~=0.10.0) ; extra == 'test'", "pytest-cov ; extra == 'test'", "codecov ; extra == 'test'", "flake8 (>=3.6.0) ; extra == 'test'" ], "requires_python": ">=3.6", "summary": "Idiomatic asyncio utilities", "version": "0.8.3" }, "last_serial": 5937520, "releases": { "0.1": [ { "comment_text": "", "digests": { "md5": "f4a89ce01d1339a4865719b1b006d34d", "sha256": "332572246cf4c64978a74778285177c2310df62f17812b0c90ef76426394a6b7" }, "downloads": -1, "filename": "aiotools-0.1-py3-none-any.whl", "has_sig": false, "md5_digest": "f4a89ce01d1339a4865719b1b006d34d", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 3819, "upload_time": "2017-04-14T05:17:27", "url": "https://files.pythonhosted.org/packages/33/2e/5b70fd8438f10db3e53ea161aaad46adb23b2c3bfc579bc24cd6d75b4e49/aiotools-0.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "29ffd96b56c3736709065cd37a1d40de", "sha256": "5202e68e888eccb80a934b3f327603281b3727effbe1eb5d116e8db8479ff303" }, "downloads": -1, "filename": "aiotools-0.1.tar.gz", "has_sig": false, "md5_digest": "29ffd96b56c3736709065cd37a1d40de", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 2319, "upload_time": "2017-04-14T05:17:29", "url": "https://files.pythonhosted.org/packages/c4/f6/d893e94ca755b80f3c01d06b2e090e8c28d659719d728c737db6b597ad7c/aiotools-0.1.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "73890e2af02d701e70f9fa9ec2225667", "sha256": "cf768ff8fb088cca228b0230a9c52f0db3e47b8af4e72addd955ff79a229e0b4" }, "downloads": -1, "filename": "aiotools-0.1.1-py3-none-any.whl", "has_sig": false, "md5_digest": "73890e2af02d701e70f9fa9ec2225667", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 5327, "upload_time": "2017-04-14T05:18:56", "url": "https://files.pythonhosted.org/packages/7c/35/bc185e6b6564f9dfebed18723d9fa17cfae01f523b772710ff07f5089fc8/aiotools-0.1.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "404549990d7810c53553eb49068b40a1", "sha256": "b956930acbb1fd0237455473a8d8a6f0e961d2b515c2ea12ff9617ebdade259a" }, "downloads": -1, "filename": "aiotools-0.1.1.tar.gz", "has_sig": false, "md5_digest": "404549990d7810c53553eb49068b40a1", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 3031, "upload_time": "2017-04-14T05:18:57", "url": "https://files.pythonhosted.org/packages/3c/44/58b3e5ee2837e47cd2c8f3d0ed18f23d8d6ffd35ed0ecb30303d8d7dc769/aiotools-0.1.1.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "31f0a8008dc4f935d0cd9768b814a2f5", "sha256": "02de9931e4c0878f4b20ca8397abc902d738e84fe22b0a7a41dd2178f069fa94" }, "downloads": -1, "filename": "aiotools-0.2.0-py3-none-any.whl", "has_sig": false, "md5_digest": "31f0a8008dc4f935d0cd9768b814a2f5", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 6880, "upload_time": "2017-04-20T15:44:12", "url": "https://files.pythonhosted.org/packages/f3/a2/33128b70a5020cfccfd66a89f43fd94dd830ebfd2ff32526168f1ca58f43/aiotools-0.2.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "4c377369b3a2410c5525f6342793466e", "sha256": "c9d15506d2fe8db63028c199a7aad1525a5292ae80703831059888038c65f553" }, "downloads": -1, "filename": "aiotools-0.2.0.tar.gz", "has_sig": false, "md5_digest": "4c377369b3a2410c5525f6342793466e", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 4018, "upload_time": "2017-04-20T15:44:13", "url": "https://files.pythonhosted.org/packages/9f/1f/cae8fb40482585ba734e0af648f74fe01b88c3922d7d97a1f361a8dfcd47/aiotools-0.2.0.tar.gz" } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "a3ad81903c0c3094d8d0c11279ec6c3a", "sha256": "d8e749d734f866d4868ce36684a88e6623dde4b2183b21caf0750a000a90cdff" }, "downloads": -1, "filename": "aiotools-0.3.0-py3-none-any.whl", "has_sig": false, "md5_digest": "a3ad81903c0c3094d8d0c11279ec6c3a", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 9539, "upload_time": "2017-04-26T09:12:05", "url": "https://files.pythonhosted.org/packages/42/78/250ce99c83228a35e8b174844661a63cf5edca732cccdbe16a76776fd4d2/aiotools-0.3.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "e850c3e1feb637f8cf54174fc1021326", "sha256": "0407a84a65160f2eee538a294366e918341a3ba79485074fd7f0be20a750f71f" }, "downloads": -1, "filename": "aiotools-0.3.0.tar.gz", "has_sig": false, "md5_digest": "e850c3e1feb637f8cf54174fc1021326", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 5914, "upload_time": "2017-04-26T09:12:07", "url": "https://files.pythonhosted.org/packages/c3/86/4bb16dc19ca0eb9c9b8bebeb11e6ba1edab5ab4721a26f270a1c719deb93/aiotools-0.3.0.tar.gz" } ], "0.3.1": [ { "comment_text": "", "digests": { "md5": "5dba0784a7cf54f5bd879816d42d1aa3", "sha256": "3cb0832d30bd26d4c7726fa649170ca21a42d68eade94c71478c9d1cbc082533" }, "downloads": -1, "filename": "aiotools-0.3.1-py3-none-any.whl", "has_sig": false, "md5_digest": "5dba0784a7cf54f5bd879816d42d1aa3", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 9646, "upload_time": "2017-07-26T08:53:16", "url": "https://files.pythonhosted.org/packages/ff/5e/5976bd49dd19d61c81593cca72288aa2140eb809c528948ce528650aff88/aiotools-0.3.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "8e01c2f4373b183aac5a57e6a7201342", "sha256": "434efcbc82c3643e492680b2c762fdebf272390f489d42e3f5ae4d58675cd58c" }, "downloads": -1, "filename": "aiotools-0.3.1.tar.gz", "has_sig": false, "md5_digest": "8e01c2f4373b183aac5a57e6a7201342", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 6140, "upload_time": "2017-07-26T08:53:17", "url": "https://files.pythonhosted.org/packages/35/5b/c522848e9adf4be14c4b16660c4b4c36fd970d7c2abb2cab21550d155b82/aiotools-0.3.1.tar.gz" } ], "0.3.2": [ { "comment_text": "", "digests": { "md5": "a49ca2266f44edfbe8f0a10d26e71ee2", "sha256": "8f2de3c248d49b3e942fec6f2725df6b62ff5d8b203969d5b9e5afc48ae1e0d3" }, "downloads": -1, "filename": "aiotools-0.3.2-py3-none-any.whl", "has_sig": false, "md5_digest": "a49ca2266f44edfbe8f0a10d26e71ee2", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 10007, "upload_time": "2017-07-31T14:55:31", "url": "https://files.pythonhosted.org/packages/f5/3b/edc2cc263342c1fa54cd3dddaed205e40c7e549adbdbb1bca8d7513a647f/aiotools-0.3.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a16562e97373d4214a134c865e6db16d", "sha256": "549fdc9db7b008e218f2f31d0a8f00b0812a0c499c2efbb6d6c2ef7e6d31bfe6" }, "downloads": -1, "filename": "aiotools-0.3.2.tar.gz", "has_sig": false, "md5_digest": "a16562e97373d4214a134c865e6db16d", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 6417, "upload_time": "2017-07-31T14:55:33", "url": "https://files.pythonhosted.org/packages/98/d6/758673595572e36a5e1198864309193ab84a8c4ce3aa407c14e412e050cd/aiotools-0.3.2.tar.gz" } ], "0.4.0": [ { "comment_text": "", "digests": { "md5": "f8a601795ac6ee319557cd40a6d0a1b6", "sha256": "ba285b62bfc4c72616faee3cb4a43eaa7c5a9deca50fb1a070be37aa31edd240" }, "downloads": -1, "filename": "aiotools-0.4.0-py3-none-any.whl", "has_sig": false, "md5_digest": "f8a601795ac6ee319557cd40a6d0a1b6", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 12243, "upload_time": "2017-08-01T16:15:05", "url": "https://files.pythonhosted.org/packages/6d/3a/a88c516d55a3c8c5c76a2a8593437699a69350fe26b083e5151110941fe9/aiotools-0.4.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "59f22c309fefb9bfa38049368729f628", "sha256": "5c9b20c34b1a9687f033a5c74b64315bf3b31e9b7c084825c8d997487185be61" }, "downloads": -1, "filename": "aiotools-0.4.0.tar.gz", "has_sig": false, "md5_digest": "59f22c309fefb9bfa38049368729f628", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 8419, "upload_time": "2017-08-01T16:15:06", "url": "https://files.pythonhosted.org/packages/dd/e2/54ec8d2b2ccceb38692633cb05af67f1f7d0cd694a8d334128eabb7ef7a5/aiotools-0.4.0.tar.gz" } ], "0.4.2": [ { "comment_text": "", "digests": { "md5": "fb8affa3fc24029efe6ee4bef2a013d0", "sha256": "cf1b14785a8d341d29e41d50cb101f323bce041cec79f219697a14682ea01feb" }, "downloads": -1, "filename": "aiotools-0.4.2-py3-none-any.whl", "has_sig": false, "md5_digest": "fb8affa3fc24029efe6ee4bef2a013d0", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 12477, "upload_time": "2017-08-01T18:17:54", "url": "https://files.pythonhosted.org/packages/d1/53/ace1d8af0edb59caa5ef8cd9dbb23f8edb0b65d5cf354a06b9158be3b05c/aiotools-0.4.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "09a07b1744ed6077978f5de84ea89304", "sha256": "ebcfb03ee7e4d8459640722664fb2f5b1db8ab5ce737c2151f0ff58a761f929a" }, "downloads": -1, "filename": "aiotools-0.4.2.tar.gz", "has_sig": false, "md5_digest": "09a07b1744ed6077978f5de84ea89304", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 8620, "upload_time": "2017-08-01T18:17:55", "url": "https://files.pythonhosted.org/packages/88/19/a53444cdff5f575d5fe0efd8e08902146fb086493d691ce6d96e30e205ba/aiotools-0.4.2.tar.gz" } ], "0.4.3": [ { "comment_text": "", "digests": { "md5": "36fda17eada5042d8ad0315f9f797251", "sha256": "bfd80ab724858e2d20dd8dcf685088b8cc5436bb6c3e1725c69232e69b55ccef" }, "downloads": -1, "filename": "aiotools-0.4.3-py3-none-any.whl", "has_sig": false, "md5_digest": "36fda17eada5042d8ad0315f9f797251", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 13723, "upload_time": "2017-08-06T13:46:24", "url": "https://files.pythonhosted.org/packages/65/e9/6d8c51d9fa88da199213eec85e3f20b0c7667e59e8f06ac6074dc1205f74/aiotools-0.4.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "36ca9dd4d88e6ae847f1a771cb2c3255", "sha256": "60df778df8017347afd803386f36aee5d18718eab113e692e1b0f028b908b2a0" }, "downloads": -1, "filename": "aiotools-0.4.3.tar.gz", "has_sig": false, "md5_digest": "36ca9dd4d88e6ae847f1a771cb2c3255", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 9776, "upload_time": "2017-08-06T13:46:25", "url": "https://files.pythonhosted.org/packages/65/94/59c66498df1f6452d5b48853a6ba20cbea726036b6a61be8cd5972c7da2f/aiotools-0.4.3.tar.gz" } ], "0.4.3.dev0": [ { "comment_text": "", "digests": { "md5": "65cac0415117a0423decf583a0bbd4ab", "sha256": "a9ca5aa15d8deeb425bf7fb85a4c9a9171eb14690e34879939ba9e2276cb06f1" }, "downloads": -1, "filename": "aiotools-0.4.3.dev0-py3-none-any.whl", "has_sig": false, "md5_digest": "65cac0415117a0423decf583a0bbd4ab", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 9400, "upload_time": "2017-08-06T02:01:50", "url": "https://files.pythonhosted.org/packages/b0/b0/c05458771d6d15e7e88d91e518db40b6416a73bbcba5cbc174d93cf92517/aiotools-0.4.3.dev0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "89969716af76a26a8b4afaeb5de087ba", "sha256": "f8f86e8b2990e2fec9f7a9cf9f6d177afb9cd3d4c706f15ab1c44601bb42f6e3" }, "downloads": -1, "filename": "aiotools-0.4.3.dev0.tar.gz", "has_sig": false, "md5_digest": "89969716af76a26a8b4afaeb5de087ba", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 7368, "upload_time": "2017-08-06T02:01:51", "url": "https://files.pythonhosted.org/packages/db/46/83e637d10cc0cbbf67b1e033314f06952d5a4d091106aa7a74a9d119041a/aiotools-0.4.3.dev0.tar.gz" } ], "0.4.3.dev3": [ { "comment_text": "", "digests": { "md5": "9b48ce833fef0be67d000059f2eb9de8", "sha256": "e8001b2b7485f62cccd13f186fc94062a46493531a1e9bfae0917715d1336608" }, "downloads": -1, "filename": "aiotools-0.4.3.dev3-py3-none-any.whl", "has_sig": false, "md5_digest": "9b48ce833fef0be67d000059f2eb9de8", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 12814, "upload_time": "2017-08-06T13:22:35", "url": "https://files.pythonhosted.org/packages/71/44/475e0b94def041ddef211f8924c5f91fbf64c9bea63724d5cbef725c8e72/aiotools-0.4.3.dev3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d81ac8691ac5d6d0cf25717839fa9355", "sha256": "4c2880b97bb58b6acf1bd1a73551fe4cad8f92d280c9704c0ac7c7482efe3f7c" }, "downloads": -1, "filename": "aiotools-0.4.3.dev3.tar.gz", "has_sig": false, "md5_digest": "d81ac8691ac5d6d0cf25717839fa9355", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 9308, "upload_time": "2017-08-06T13:22:38", "url": "https://files.pythonhosted.org/packages/44/8f/be30953cede3a8e087e71f02336586db7ec5ed4d8eeaf9a46a810cc16c12/aiotools-0.4.3.dev3.tar.gz" } ], "0.4.4": [ { "comment_text": "", "digests": { "md5": "710920dc06442663cf03e07c40ab808c", "sha256": "f1a9a12b9fdfc8f10ccc9b0a362fad9e281e78637487f7c4db06ad1ea351dac6" }, "downloads": -1, "filename": "aiotools-0.4.4-py3-none-any.whl", "has_sig": false, "md5_digest": "710920dc06442663cf03e07c40ab808c", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 14200, "upload_time": "2017-09-12T05:28:18", "url": "https://files.pythonhosted.org/packages/b7/2c/abb864aca26a5e7a3cb4dd0d2d7d6c64a2d3370f1f169a4d2eeb8032e457/aiotools-0.4.4-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "3948a4c3380d76b74abfb48d48529b49", "sha256": "c716b4d9c9f2f31f3bd6562f0f70d640332b45e5f9cbf734cbf5845a4441d817" }, "downloads": -1, "filename": "aiotools-0.4.4.tar.gz", "has_sig": false, "md5_digest": "3948a4c3380d76b74abfb48d48529b49", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 10044, "upload_time": "2017-09-12T05:28:21", "url": "https://files.pythonhosted.org/packages/ac/d2/0c66d5e9b6d0c795017df698673df1c5328e3e9bb928c14e5640b4ac669d/aiotools-0.4.4.tar.gz" } ], "0.4.5": [ { "comment_text": "", "digests": { "md5": "6036a4c13065d197949b796870f87cc2", "sha256": "60f2aa162b3cddfdf47526be0a1ef012a514765bca8c19adeb46a181727d1bbe" }, "downloads": -1, "filename": "aiotools-0.4.5-py3-none-any.whl", "has_sig": false, "md5_digest": "6036a4c13065d197949b796870f87cc2", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 14906, "upload_time": "2017-10-14T14:46:42", "url": "https://files.pythonhosted.org/packages/4b/f7/323cec55b3c03de5ec950f4f586d24be5b693a48333a7983c7498694c2e8/aiotools-0.4.5-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "03787fa6048a96e90c03cb7c7122bebf", "sha256": "7aa0afe864d3607d2ba890cbea50a98d7cfe300ddd02a06fb8a9bfff58a6db72" }, "downloads": -1, "filename": "aiotools-0.4.5.tar.gz", "has_sig": false, "md5_digest": "03787fa6048a96e90c03cb7c7122bebf", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 10508, "upload_time": "2017-10-14T14:46:44", "url": "https://files.pythonhosted.org/packages/7e/f3/d783a15bb83693969108c0295de73fb2793162b242a4109a0327d7c8e9a3/aiotools-0.4.5.tar.gz" } ], "0.5.0": [ { "comment_text": "", "digests": { "md5": "b6f6acb4ca10fb64dddae8718399a8eb", "sha256": "2ee02b7f0ce011a1f8eb9a321fe05a836f055f42d8e088ecb38aee6486acdd39" }, "downloads": -1, "filename": "aiotools-0.5.0-py3-none-any.whl", "has_sig": false, "md5_digest": "b6f6acb4ca10fb64dddae8718399a8eb", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 15856, "upload_time": "2017-11-08T16:30:35", "url": "https://files.pythonhosted.org/packages/73/4f/4976b9ffae489dfda0e02eac10308cfbf4f9f5dc5be189592bbfbd80f602/aiotools-0.5.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "2478befde428e3c3385b9f4dae504f00", "sha256": "a7bde3627c57ef2b4940f254b893439e7f5b7f7c4d53b7bd40a585f599e02ac4" }, "downloads": -1, "filename": "aiotools-0.5.0.tar.gz", "has_sig": false, "md5_digest": "2478befde428e3c3385b9f4dae504f00", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 11334, "upload_time": "2017-11-08T16:30:38", "url": "https://files.pythonhosted.org/packages/33/a8/0e3f85e8a7ac6358ea8b2627cf039f24cbacf073989b31d59195444a2183/aiotools-0.5.0.tar.gz" } ], "0.5.1": [ { "comment_text": "", "digests": { "md5": "320d675f847feb1755a18125d3e47f87", "sha256": "355e84386b295a0da8d681f199fac9505fd8db2129e4eea112367b344c52800a" }, "downloads": -1, "filename": "aiotools-0.5.1-py3-none-any.whl", "has_sig": false, "md5_digest": "320d675f847feb1755a18125d3e47f87", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 16002, "upload_time": "2018-01-10T15:43:25", "url": "https://files.pythonhosted.org/packages/9c/00/553b51f11e23c5950c34becb4dc0238431f594c138dcd0304c14aff01ca6/aiotools-0.5.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "6725c26ce48d100adbd0fe36c3724549", "sha256": "180baf28d2fdf78d4782dacf1e4a9c41e1f3b959bc4f23eac2029605a7038177" }, "downloads": -1, "filename": "aiotools-0.5.1.tar.gz", "has_sig": false, "md5_digest": "6725c26ce48d100adbd0fe36c3724549", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 11529, "upload_time": "2018-01-10T15:43:28", "url": "https://files.pythonhosted.org/packages/72/ac/5ed503ec1bfe25d45ad0220562abf50db44198d922f3247912bc33b02eab/aiotools-0.5.1.tar.gz" } ], "0.5.2": [ { "comment_text": "", "digests": { "md5": "b5af347a2f095e534479f52a2d317411", "sha256": "34bae1021c80a7a5bcc0da5d80637ddbafee94914dd3e222575079c8aade5ef9" }, "downloads": -1, "filename": "aiotools-0.5.2-py3-none-any.whl", "has_sig": false, "md5_digest": "b5af347a2f095e534479f52a2d317411", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 16196, "upload_time": "2018-01-12T02:48:04", "url": "https://files.pythonhosted.org/packages/39/f3/009e0be7b8f67e23d6af3ab8daa78e1687bf5cbec129e1be784a7ee65b95/aiotools-0.5.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d29340941769c4b20e96ef103e1a09f1", "sha256": "145efa9b805799178ea222d430a2368b1b30c00029c096c7979db669cc4c4be9" }, "downloads": -1, "filename": "aiotools-0.5.2.tar.gz", "has_sig": false, "md5_digest": "d29340941769c4b20e96ef103e1a09f1", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 11670, "upload_time": "2018-01-12T02:48:05", "url": "https://files.pythonhosted.org/packages/af/a8/978dcd3adaafe51cd8b3e626f0f7c246284c7767b5040bfbf5b005977c76/aiotools-0.5.2.tar.gz" } ], "0.5.3": [ { "comment_text": "", "digests": { "md5": "6c7490ef6c2d9414f9bc5456a5f4fcbd", "sha256": "2e667571be3b263d823dbdd15af0e711e780729184b351eb083e8fed3fda71eb" }, "downloads": -1, "filename": "aiotools-0.5.3-py3-none-any.whl", "has_sig": false, "md5_digest": "6c7490ef6c2d9414f9bc5456a5f4fcbd", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 16261, "upload_time": "2018-01-12T04:46:39", "url": "https://files.pythonhosted.org/packages/58/63/7612523ac496fe6f0ed15a75a825ac5211513b0ba4ffd841587e7af72a86/aiotools-0.5.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "acbd87cc3a15a0e53e4b2e18cfe972b9", "sha256": "65be3ef6adc286df1a58ba435a8abafaf26e0d168b79a30931191a96b553743f" }, "downloads": -1, "filename": "aiotools-0.5.3.tar.gz", "has_sig": false, "md5_digest": "acbd87cc3a15a0e53e4b2e18cfe972b9", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 11700, "upload_time": "2018-01-12T04:46:41", "url": "https://files.pythonhosted.org/packages/94/af/609a06d919eb253ed5ef03ad292826a70223d9a9fab54e3a2c9916e42166/aiotools-0.5.3.tar.gz" } ], "0.5.4": [ { "comment_text": "", "digests": { "md5": "ef291c286af95b428f9ba999f9a82e27", "sha256": "a6e5c1af55f8d17532dfcc335ae4af96c73085994bbe9844264df4468aba42a8" }, "downloads": -1, "filename": "aiotools-0.5.4-py3-none-any.whl", "has_sig": false, "md5_digest": "ef291c286af95b428f9ba999f9a82e27", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 16385, "upload_time": "2018-02-01T14:08:39", "url": "https://files.pythonhosted.org/packages/7d/1d/66289a4cca6caabc99b1ad2750423e773328a62d3062eb5134ac3476dd18/aiotools-0.5.4-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "bef6552470b85c102f85a6c0a6162bc7", "sha256": "b3db35b205c4d513b35200b1e8f7228c5f9063ea560a16a890e335bbc7d8fd07" }, "downloads": -1, "filename": "aiotools-0.5.4.tar.gz", "has_sig": false, "md5_digest": "bef6552470b85c102f85a6c0a6162bc7", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 11756, "upload_time": "2018-02-01T14:08:41", "url": "https://files.pythonhosted.org/packages/7b/3c/26e83a7468389d96effd4a6bf1227eba863cae9e9ebb2441aa170ea5b93c/aiotools-0.5.4.tar.gz" } ], "0.6.0": [ { "comment_text": "", "digests": { "md5": "a18c5fe8794ab04f91aae6a97a17931d", "sha256": "40af1223d6f384a931d004133a382738f0281fc5c34cb9ac2e1c2e6805250000" }, "downloads": -1, "filename": "aiotools-0.6.0-py3-none-any.whl", "has_sig": false, "md5_digest": "a18c5fe8794ab04f91aae6a97a17931d", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 13195, "upload_time": "2018-04-09T17:12:19", "url": "https://files.pythonhosted.org/packages/79/9b/6896badf13f68ccb47a5283619a5280ee4407a299ed3fdaf2fca9db0f31c/aiotools-0.6.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "fb78de2c7df42461dbb802457126cade", "sha256": "aa08d88f75e77b81f7a2caef173baacd2deb42e1e8c3675839c5b264138e2b13" }, "downloads": -1, "filename": "aiotools-0.6.0.tar.gz", "has_sig": false, "md5_digest": "fb78de2c7df42461dbb802457126cade", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 12005, "upload_time": "2018-04-09T17:12:20", "url": "https://files.pythonhosted.org/packages/77/10/1a548c730ad8f34ad79cb005e33ca461bce3cd84e6325236bfc055d5e316/aiotools-0.6.0.tar.gz" } ], "0.6.1a1": [ { "comment_text": "", "digests": { "md5": "3abb97fbdb1d09cb4f23a721a37c146b", "sha256": "1e737ccbf44841ecb1505222fb771a0eb8fa2f7a22151fa6af643ea81055c396" }, "downloads": -1, "filename": "aiotools-0.6.1a1-py3-none-any.whl", "has_sig": false, "md5_digest": "3abb97fbdb1d09cb4f23a721a37c146b", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 13211, "upload_time": "2018-05-01T08:46:40", "url": "https://files.pythonhosted.org/packages/3d/ee/e18330cc506154170728b20088d3ac07988bb5be635fa9d13bd29ff65e6e/aiotools-0.6.1a1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "519edc74d7bb3832130491f5d000b3d1", "sha256": "45bba6c75b4414f315c452d506ef1d47cac0dfbab0f08a86799887179348bfae" }, "downloads": -1, "filename": "aiotools-0.6.1a1.tar.gz", "has_sig": false, "md5_digest": "519edc74d7bb3832130491f5d000b3d1", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 12016, "upload_time": "2018-05-01T08:46:41", "url": "https://files.pythonhosted.org/packages/1b/20/1662b202472f4e6a391d1ee56e9eca948437511c247582d5e20a4f19ae40/aiotools-0.6.1a1.tar.gz" } ], "0.7.0": [ { "comment_text": "", "digests": { "md5": "31ea5657aadf4f77a7b4af0cc13a5bae", "sha256": "336163b94892832ea06d31fd9cf6b54e11fea57a67705c7a37eb2140ee6af597" }, "downloads": -1, "filename": "aiotools-0.7.0-py3-none-any.whl", "has_sig": false, "md5_digest": "31ea5657aadf4f77a7b4af0cc13a5bae", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 13583, "upload_time": "2018-08-24T06:10:39", "url": "https://files.pythonhosted.org/packages/73/de/dda23ff5acdb217d433aefcb49707ba0d1f99b1f7cd21bea687e3b742cd5/aiotools-0.7.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "265a8a871992916e0020e97470a2f9f9", "sha256": "5e48728ea891fe8a59671d1994b0346b2755b074b4d3f4a04db75523c3f8fdb6" }, "downloads": -1, "filename": "aiotools-0.7.0.tar.gz", "has_sig": false, "md5_digest": "265a8a871992916e0020e97470a2f9f9", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 15019, "upload_time": "2018-08-24T06:10:40", "url": "https://files.pythonhosted.org/packages/01/d2/520642bd969c6341378e587be1d7c543ea87b963d5dcfeba97973134aedd/aiotools-0.7.0.tar.gz" } ], "0.7.1": [ { "comment_text": "", "digests": { "md5": "cbcb232c17a2825f72853f5a6b4088ff", "sha256": "0c3d110dd7c1cac88338dc3bb7cafdbbcb9419544c47a0970a1e3680bfbbbf8b" }, "downloads": -1, "filename": "aiotools-0.7.1-py3-none-any.whl", "has_sig": false, "md5_digest": "cbcb232c17a2825f72853f5a6b4088ff", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 13606, "upload_time": "2018-08-24T07:10:23", "url": "https://files.pythonhosted.org/packages/54/9b/918ca94e8bdc1424d1a9ce000acca778d470f0f59bfb03dbdeb44668b74b/aiotools-0.7.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "fc22c38c91950d590ca419b6592f3147", "sha256": "6a4091ab78caab1f75bdd99de7ac3d6f2a3dd41bf7306d935195a1715d37dbd3" }, "downloads": -1, "filename": "aiotools-0.7.1.tar.gz", "has_sig": false, "md5_digest": "fc22c38c91950d590ca419b6592f3147", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 15057, "upload_time": "2018-08-24T07:10:25", "url": "https://files.pythonhosted.org/packages/3c/6f/3257ff8f631305945ea53a3ac03a59f5a297862479ec0c4a7ed034f6cebb/aiotools-0.7.1.tar.gz" } ], "0.7.3": [ { "comment_text": "", "digests": { "md5": "ad879af6a6ef089a83946b254532f2a0", "sha256": "974c3e86388dac59ccc62822b860e396289ba514399be1fe416f20557be8aa74" }, "downloads": -1, "filename": "aiotools-0.7.3-py3-none-any.whl", "has_sig": false, "md5_digest": "ad879af6a6ef089a83946b254532f2a0", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 15111, "upload_time": "2018-10-16T06:22:17", "url": "https://files.pythonhosted.org/packages/07/24/235e370a32894d3ba4c65de8671be38b4c09ee090c082e5c444f7fc89a6d/aiotools-0.7.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "aacf5399c8b603672fc61d917cce6cd6", "sha256": "bd4e56422d868359989eb93091ece5814c7251627844bb5c5f88a4e4a79182e3" }, "downloads": -1, "filename": "aiotools-0.7.3.tar.gz", "has_sig": false, "md5_digest": "aacf5399c8b603672fc61d917cce6cd6", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 15716, "upload_time": "2018-10-16T06:22:18", "url": "https://files.pythonhosted.org/packages/ab/8c/9289788a8b2817d20ef001796cb6f51113c2bcc7eeeec58b9ebd4c6c1d78/aiotools-0.7.3.tar.gz" } ], "0.8.0": [ { "comment_text": "", "digests": { "md5": "6154db7e433c8b10eb414bdeda6dace9", "sha256": "95e936df1e535d6a8564c713944933bf757f4cfda4cd86e2313f824f2d6eb15a" }, "downloads": -1, "filename": "aiotools-0.8.0-py3-none-any.whl", "has_sig": false, "md5_digest": "6154db7e433c8b10eb414bdeda6dace9", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 16832, "upload_time": "2018-11-17T15:50:48", "url": "https://files.pythonhosted.org/packages/47/a0/a2223d67c3ae089dc34d21e1981f0498e9fee57585499b227bec8dba031e/aiotools-0.8.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d80f1d9d74e4652994f29abf0997a89a", "sha256": "cdde726872ff7119383bb995b0d362e1233b366b731d34fb55106e7c13efa086" }, "downloads": -1, "filename": "aiotools-0.8.0.tar.gz", "has_sig": false, "md5_digest": "d80f1d9d74e4652994f29abf0997a89a", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 17355, "upload_time": "2018-11-17T15:50:51", "url": "https://files.pythonhosted.org/packages/9a/17/265227279563890d4d46d911594b7c03e4477dac0c547052762b32e2a520/aiotools-0.8.0.tar.gz" } ], "0.8.1": [ { "comment_text": "", "digests": { "md5": "c6f0f2b1d710daba85b16d1617ccce32", "sha256": "9cfeac44cb98d6353c96a0d2577a9aefb7ec2272ec20f2bba1a963eb1fa2172b" }, "downloads": -1, "filename": "aiotools-0.8.1-py3-none-any.whl", "has_sig": false, "md5_digest": "c6f0f2b1d710daba85b16d1617ccce32", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 16913, "upload_time": "2019-02-24T14:45:00", "url": "https://files.pythonhosted.org/packages/d1/cc/ad6d24e02c8a3c9101b51ea6764114d7600bba2aba37015e8a4bb936ad7e/aiotools-0.8.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f9f58d72feee29a6d4a15b424ba29a9c", "sha256": "80f5c2ea26eb169cfcc1b11bb437b5d120e259b7470186d7afac51716fbf08a5" }, "downloads": -1, "filename": "aiotools-0.8.1.tar.gz", "has_sig": false, "md5_digest": "f9f58d72feee29a6d4a15b424ba29a9c", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 17474, "upload_time": "2019-02-24T14:45:03", "url": "https://files.pythonhosted.org/packages/3e/54/c2a7245aff90efe27eab4ab2f6ead71dfc0d381674779a6211b0287d21c0/aiotools-0.8.1.tar.gz" } ], "0.8.2": [ { "comment_text": "", "digests": { "md5": "ca459015d17fa3b85696cfeaf81fd3d6", "sha256": "a8a8f44de61fc631f94136722bf26e7b294f54cbe3c1d7c01985b42a5a0004b0" }, "downloads": -1, "filename": "aiotools-0.8.2-py3-none-any.whl", "has_sig": false, "md5_digest": "ca459015d17fa3b85696cfeaf81fd3d6", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 17221, "upload_time": "2019-08-28T06:02:44", "url": "https://files.pythonhosted.org/packages/9c/e3/f9c4398470cdc171a9d3a78e091400ea67bc8bd6f6384ef5528e273786bb/aiotools-0.8.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b9566c1e49375dd381e32990434cc3fb", "sha256": "a2e139265b6776208d3c159f91147055dca4422f5b4dab2a967637e47cbf7c6e" }, "downloads": -1, "filename": "aiotools-0.8.2.tar.gz", "has_sig": false, "md5_digest": "b9566c1e49375dd381e32990434cc3fb", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 17956, "upload_time": "2019-08-28T06:02:46", "url": "https://files.pythonhosted.org/packages/7c/51/57605ab58ae9c58eea17b93b0780b545ad603c2e3e520b10137a566e0333/aiotools-0.8.2.tar.gz" } ], "0.8.3": [ { "comment_text": "", "digests": { "md5": "91bfdd9510c16eb33ba729e0d67d3665", "sha256": "f061a700df887e349b61dc6a4c3501e57a8ca906bed7ba979cac3786f1403cd5" }, "downloads": -1, "filename": "aiotools-0.8.3-py3-none-any.whl", "has_sig": false, "md5_digest": "91bfdd9510c16eb33ba729e0d67d3665", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 17256, "upload_time": "2019-10-07T08:04:35", "url": "https://files.pythonhosted.org/packages/61/72/bc3395efc7cad5db908622b39f9bdb7149bb8d672bca9fd9b23fc55768ce/aiotools-0.8.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "9abdf8b593943607b2082920537f0c9e", "sha256": "deccfdf71366b74f0ad216b7af7ae2310b5ef286b258cd55ba408faaa326643f" }, "downloads": -1, "filename": "aiotools-0.8.3.tar.gz", "has_sig": false, "md5_digest": "9abdf8b593943607b2082920537f0c9e", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 18021, "upload_time": "2019-10-07T08:04:37", "url": "https://files.pythonhosted.org/packages/ec/66/f39ddd84465b108d306079704e7e42840bbb3e63e72005819114c95d2c77/aiotools-0.8.3.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "91bfdd9510c16eb33ba729e0d67d3665", "sha256": "f061a700df887e349b61dc6a4c3501e57a8ca906bed7ba979cac3786f1403cd5" }, "downloads": -1, "filename": "aiotools-0.8.3-py3-none-any.whl", "has_sig": false, "md5_digest": "91bfdd9510c16eb33ba729e0d67d3665", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 17256, "upload_time": "2019-10-07T08:04:35", "url": "https://files.pythonhosted.org/packages/61/72/bc3395efc7cad5db908622b39f9bdb7149bb8d672bca9fd9b23fc55768ce/aiotools-0.8.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "9abdf8b593943607b2082920537f0c9e", "sha256": "deccfdf71366b74f0ad216b7af7ae2310b5ef286b258cd55ba408faaa326643f" }, "downloads": -1, "filename": "aiotools-0.8.3.tar.gz", "has_sig": false, "md5_digest": "9abdf8b593943607b2082920537f0c9e", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 18021, "upload_time": "2019-10-07T08:04:37", "url": "https://files.pythonhosted.org/packages/ec/66/f39ddd84465b108d306079704e7e42840bbb3e63e72005819114c95d2c77/aiotools-0.8.3.tar.gz" } ] }