{ "info": { "author": "Sebastian H\u00fcther", "author_email": "sebastian.huether@gmx.de", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "Intended Audience :: Developers", "License :: OSI Approved :: GNU General Public License v3 (GPLv3)", "Programming Language :: Python", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Topic :: Internet :: WWW/HTTP" ], "description": "aiothrottle\n===========\n\nThrottling, flow controlling StreamReader for aiohttp\n\n.. image:: https://img.shields.io/pypi/v/aiothrottle.svg\n :target: https://pypi.python.org/pypi/aiothrottle\n :alt: Package Version\n\n.. image:: https://travis-ci.org/panda73111/aiothrottle.svg?branch=master\n :target: https://travis-ci.org/panda73111/aiothrottle\n :alt: Build Status\n\n.. image:: https://coveralls.io/repos/panda73111/aiothrottle/badge.svg?branch=master&service=github\n :target: https://coveralls.io/github/panda73111/aiothrottle?branch=master\n :alt: Coverage Status\n\n.. image:: https://readthedocs.org/projects/aiothrottle/badge/?version=latest\n :target: https://readthedocs.org/projects/aiothrottle/?badge=latest\n :alt: Documentation Status\n\n.. image:: https://img.shields.io/pypi/pyversions/aiothrottle.svg\n :target: https://www.python.org/\n :alt: Python Version\n\n.. image:: https://img.shields.io/pypi/l/aiothrottle.svg\n :target: http://opensource.org/licenses/GPL-3.0\n :alt: GPLv3\n\nRequirements\n------------\n\n- Python >= 3.4.2\n- aiohttp https://pypi.python.org/pypi/aiohttp\n\n\nLicense\n-------\n\n``aiothrottle`` is offered under the GPL v3 license.\n\n\nDocumentation\n-------------\n\nhttps://aiothrottle.readthedocs.org/\n\n\nSource code\n-----------\n\nThe latest developer version is available in a github repository:\nhttps://github.com/panda73111/aiothrottle\n\n\nUsage\n-----\n\n.. code:: python\n\n import asyncio\n import aiohttp\n import aiothrottle\n\n @asyncio.coroutine\n def load_file(url):\n response = yield from aiohttp.request(\"GET\", url)\n\n data = yield from response.read()\n with open(\"largefile.zip\", \"wb\") as file:\n file.write(data)\n\n response.close()\n\n # setup the rate limit to 200 KB/s\n aiothrottle.limit_rate(200 * 1024)\n\n # download a large file without blocking bandwidth\n loop = asyncio.get_event_loop()\n loop.run_until_complete(load_file(\n \"http://example.com/largefile.zip\"))\n\n # unset the rate limit\n aiothrottle.unlimit_rate()\n\n\nTODO\n----\n\n- Upload rate limiting class\n- General socket limiting class\n\nCHANGES\n=======\n\n0.1.3 (30-08-2016)\n------------------\n\n- Set minimum required Python version to 3.4.2, the same as aiohttp 1.0.0\n\n- Made aiothrottle compatible with current aiohttp version again\n (Now using aiohttp.StreamReader._buffer_size)\n\n- Catching RuntimeError when trying to pause a closing _SSLProtocolTransport\n\n0.1.2 (08-08-2015)\n------------------\n\n- Fixed resuming transport too often\n\n- Added 'rate_limit' and 'throttling' properties\n\n- Fixed buffer limit control\n\n0.1.1 (08-02-2015)\n------------------\n\n- Added limit_rate() and unlimit_rate() globally and response-wise\n\n- Raising ValueError on invalid rate limit\n\n- Cancelling _check_handle in Throttle's destructor\n\n0.1.0 (08-01-2015)\n------------------\n\n- Initial release with basic throttling functionality", "description_content_type": null, "docs_url": null, "download_url": "https://github.com/panda73111/aiothrottle/archive/v0.1.3.tar.gz", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/panda73111/aiothrottle", "keywords": "throttle bandwidth limit download http throughput asyncio aiohttp", "license": "GPLv3", "maintainer": null, "maintainer_email": null, "name": "aiothrottle", "package_url": "https://pypi.org/project/aiothrottle/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/aiothrottle/", "project_urls": { "Download": "https://github.com/panda73111/aiothrottle/archive/v0.1.3.tar.gz", "Homepage": "https://github.com/panda73111/aiothrottle" }, "release_url": "https://pypi.org/project/aiothrottle/0.1.3/", "requires_dist": null, "requires_python": null, "summary": "Throttling, flow controlling StreamReader for aiohttp", "version": "0.1.3" }, "last_serial": 2314339, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "24ae853876168563602999552c0362cf", "sha256": "e89362f9ed66a42138c2c1085bc5de90fdf72e71b55641191fbe75a81af2d7a9" }, "downloads": -1, "filename": "aiothrottle-0.1.0-py3.4.egg", "has_sig": false, "md5_digest": "24ae853876168563602999552c0362cf", "packagetype": "bdist_egg", "python_version": "3.4", "requires_python": null, "size": 6660, "upload_time": "2015-08-02T19:11:33", "url": "https://files.pythonhosted.org/packages/86/45/176a787444ddab970c15af4a8ca9f6dba7471a197ea11a43ed4ebb66142c/aiothrottle-0.1.0-py3.4.egg" }, { "comment_text": "", "digests": { "md5": "e20c70f6997020662d4c3954567ac36d", "sha256": "8db23c21c971420ec6a63b135b07d814f3a8ce25797716428b58d13b90c20b2e" }, "downloads": -1, "filename": "aiothrottle-0.1.0.zip", "has_sig": false, "md5_digest": "e20c70f6997020662d4c3954567ac36d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5713, "upload_time": "2015-08-01T21:07:36", "url": "https://files.pythonhosted.org/packages/5a/37/c4f2db407cbafd99660e7daab8554265f5ec78871bce84f1eb213c8c5d79/aiothrottle-0.1.0.zip" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "efc919dd04907dca9218beb543e48063", "sha256": "725d0e8039af86b52b20daf14a742cea37a0a172631e881b0746b5c6d1b727a7" }, "downloads": -1, "filename": "aiothrottle-0.1.1.post0-py3.4.egg", "has_sig": false, "md5_digest": "efc919dd04907dca9218beb543e48063", "packagetype": "bdist_egg", "python_version": "3.4", "requires_python": null, "size": 8950, "upload_time": "2015-08-02T19:18:48", "url": "https://files.pythonhosted.org/packages/e8/31/698cc09669bf2ebe4b308d0ea895176fc8e425f658f87f8c646ad6c9e9e6/aiothrottle-0.1.1.post0-py3.4.egg" }, { "comment_text": "", "digests": { "md5": "b9c03cb41bc49b78e63f4330c949c3d4", "sha256": "89556ea61edac8e24a46165f699768683edfa30006e83387dee359eff2d097b9" }, "downloads": -1, "filename": "aiothrottle-0.1.1.post0-py3-none-any.whl", "has_sig": false, "md5_digest": "b9c03cb41bc49b78e63f4330c949c3d4", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 6571, "upload_time": "2015-08-02T19:18:44", "url": "https://files.pythonhosted.org/packages/66/ed/bf8d119f9db39745227cf685d4383b46d7937bfe4b6a7cb8229f807800a6/aiothrottle-0.1.1.post0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "974a5513edca3efb9afcb74a73b7fb5a", "sha256": "1556f1cafc576fd106e12ec21e5f1470ad3eca5b5d840dccbbe2366d85a8cbbb" }, "downloads": -1, "filename": "aiothrottle-0.1.1.post0.zip", "has_sig": false, "md5_digest": "974a5513edca3efb9afcb74a73b7fb5a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8079, "upload_time": "2015-08-02T19:18:52", "url": "https://files.pythonhosted.org/packages/02/7f/ffd88aa2e24cabb80eddbe643163c380cf851596a95522c3c0be9ab6f1c0/aiothrottle-0.1.1.post0.zip" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "7320165d50162e3d6d49ab1f2eb2abff", "sha256": "b7ae89c278967eec2ef31d0d3e2b75dc664293d554100ee40b5bd6f9fd8ae152" }, "downloads": -1, "filename": "aiothrottle-0.1.2-py3.4.egg", "has_sig": false, "md5_digest": "7320165d50162e3d6d49ab1f2eb2abff", "packagetype": "bdist_egg", "python_version": "3.4", "requires_python": null, "size": 5607, "upload_time": "2015-08-08T14:21:07", "url": "https://files.pythonhosted.org/packages/1f/98/07a536181de2c721c311f05ad5bc6f2cb72d9179a8234079e44b0f5b6201/aiothrottle-0.1.2-py3.4.egg" }, { "comment_text": "", "digests": { "md5": "6deeb306eab281565ee0ef386d8e8b4b", "sha256": "d7e952d490f3994226cd845c6faac9cd75a342be180bc6eb95a3f3259e92ef6d" }, "downloads": -1, "filename": "aiothrottle-0.1.2-py3-none-any.whl", "has_sig": false, "md5_digest": "6deeb306eab281565ee0ef386d8e8b4b", "packagetype": "bdist_wheel", "python_version": "3.4", "requires_python": null, "size": 7569, "upload_time": "2015-08-08T14:21:03", "url": "https://files.pythonhosted.org/packages/d6/9f/57a019f758470e78922fe39b4c7065b1aa12a1e7de7521b1d45ae8942dd7/aiothrottle-0.1.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "132cc85c759b275d0554dedd8c937c7f", "sha256": "d81be44f7d57a2ab6cdc36073df52badf9a46cc9f53716e6a2f075efc7ad310a" }, "downloads": -1, "filename": "aiothrottle-0.1.2.zip", "has_sig": false, "md5_digest": "132cc85c759b275d0554dedd8c937c7f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 43368, "upload_time": "2015-08-08T14:20:59", "url": "https://files.pythonhosted.org/packages/42/1a/f7a40ecf20e3d53be7a0c298a0e3586dd68d889cb1eccd38b50501e06fb2/aiothrottle-0.1.2.zip" } ], "0.1.2.post0": [ { "comment_text": "", "digests": { "md5": "75e38aa3d15aac6db94280e3358db2bf", "sha256": "75ea1f70a8914a48a58ade5f81e5ae8537eaa5e6d77049bc3d4a038187864e5a" }, "downloads": -1, "filename": "aiothrottle-0.1.2.post0-py3.4.egg", "has_sig": false, "md5_digest": "75e38aa3d15aac6db94280e3358db2bf", "packagetype": "bdist_egg", "python_version": "3.4", "requires_python": null, "size": 5650, "upload_time": "2015-08-08T14:58:31", "url": "https://files.pythonhosted.org/packages/9d/91/ef0644c7725834a4a95658a2c6a351d59269cf4975d23ce983632dbf49e1/aiothrottle-0.1.2.post0-py3.4.egg" }, { "comment_text": "", "digests": { "md5": "54d2b592e54ae57a55cfe30c53174127", "sha256": "e840abe2c826acc488d7a168ed5a287fd48c5b0d04543a9f2f647e84b8300d0f" }, "downloads": -1, "filename": "aiothrottle-0.1.2.post0-py3-none-any.whl", "has_sig": false, "md5_digest": "54d2b592e54ae57a55cfe30c53174127", "packagetype": "bdist_wheel", "python_version": "3.4", "requires_python": null, "size": 7699, "upload_time": "2015-08-08T14:58:27", "url": "https://files.pythonhosted.org/packages/69/fe/7ff98027e0996f8062d2c6df154e55273e3b3d069f202e6b3b5743a27dc1/aiothrottle-0.1.2.post0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "0f99e55d28150ad3948c24e1cd3d0540", "sha256": "0d4d006f63b36fa293e8f085fd28985819f4d5df438ce4f2842a7675892f0c3e" }, "downloads": -1, "filename": "aiothrottle-0.1.2.post0.zip", "has_sig": false, "md5_digest": "0f99e55d28150ad3948c24e1cd3d0540", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 43781, "upload_time": "2015-08-08T14:58:23", "url": "https://files.pythonhosted.org/packages/6d/bc/1d67ed7f43676f3083b12fae2a8fd7cc5eb672bde9c94b3f9b4455c9704f/aiothrottle-0.1.2.post0.zip" } ], "0.1.3": [ { "comment_text": "", "digests": { "md5": "646073ac511a9551488378f9d2588e40", "sha256": "dd5cefdfa38b9a77b00881f0636c702dc2d28c9beba03f91a045f0ab29050def" }, "downloads": -1, "filename": "aiothrottle-0.1.3-py3.4.egg", "has_sig": false, "md5_digest": "646073ac511a9551488378f9d2588e40", "packagetype": "bdist_egg", "python_version": "3.4", "requires_python": null, "size": 11233, "upload_time": "2016-08-30T20:31:21", "url": "https://files.pythonhosted.org/packages/0d/87/a6690a6359a9b1fe61ec4fede02782b10b0a55285d35fa4c4ddbac244c9a/aiothrottle-0.1.3-py3.4.egg" }, { "comment_text": "", "digests": { "md5": "dee2bd40ca45622346ea624723349e7b", "sha256": "cfb1bbf1cbfda7047fe939e84d8db590212979b51cd58ac1fdbe980504d318ec" }, "downloads": -1, "filename": "aiothrottle-0.1.3-py3.5.egg", "has_sig": false, "md5_digest": "dee2bd40ca45622346ea624723349e7b", "packagetype": "bdist_egg", "python_version": "3.5", "requires_python": null, "size": 11209, "upload_time": "2016-08-30T20:31:05", "url": "https://files.pythonhosted.org/packages/b0/2e/4f61abdf3687a1582debdf17e103ea033f1413b8b3ec9a20b79f2b5eb9a6/aiothrottle-0.1.3-py3.5.egg" }, { "comment_text": "", "digests": { "md5": "c41c52038613d4140236de982e6b63af", "sha256": "bc59377504d5f86c03b177811146a0ede9ef797c3d9859c30f2ee6f563086268" }, "downloads": -1, "filename": "aiothrottle-0.1.3-py3-none-any.whl", "has_sig": false, "md5_digest": "c41c52038613d4140236de982e6b63af", "packagetype": "bdist_wheel", "python_version": "3.5", "requires_python": null, "size": 7989, "upload_time": "2016-08-30T20:31:08", "url": "https://files.pythonhosted.org/packages/5a/0b/6393f5916b1a89cf624ac1c914477d2028568b30527bfe6352417b172592/aiothrottle-0.1.3-py3-none-any.whl" }, { "comment_text": "built for Windows-7", "digests": { "md5": "6f9c99fb3ccbf6634e74664923aadd74", "sha256": "4993cb89a60e35389891e98e716c3086ecb5b882aadda71f6f30f7fbab9fbe38" }, "downloads": -1, "filename": "aiothrottle-0.1.3.win-amd64.zip", "has_sig": false, "md5_digest": "6f9c99fb3ccbf6634e74664923aadd74", "packagetype": "bdist_dumb", "python_version": "any", "requires_python": null, "size": 11821, "upload_time": "2016-08-30T20:31:00", "url": "https://files.pythonhosted.org/packages/d7/e9/ddb0c9af9a974b4349ed523dd70b058ee89b450e855f5dbcad080b829f00/aiothrottle-0.1.3.win-amd64.zip" }, { "comment_text": "", "digests": { "md5": "40cfb81bd1549804dd91541bdda1dc69", "sha256": "c28d9dc8a39de30c15a7fd1444525dce2e9706ad4c2c0844fef25d52bf7c7863" }, "downloads": -1, "filename": "aiothrottle-0.1.3.zip", "has_sig": false, "md5_digest": "40cfb81bd1549804dd91541bdda1dc69", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 54886, "upload_time": "2016-08-30T20:30:55", "url": "https://files.pythonhosted.org/packages/b8/17/a26d477b237654c32e1edc62e37a630192e2ca906be6b852a4cd66aa28c9/aiothrottle-0.1.3.zip" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "646073ac511a9551488378f9d2588e40", "sha256": "dd5cefdfa38b9a77b00881f0636c702dc2d28c9beba03f91a045f0ab29050def" }, "downloads": -1, "filename": "aiothrottle-0.1.3-py3.4.egg", "has_sig": false, "md5_digest": "646073ac511a9551488378f9d2588e40", "packagetype": "bdist_egg", "python_version": "3.4", "requires_python": null, "size": 11233, "upload_time": "2016-08-30T20:31:21", "url": "https://files.pythonhosted.org/packages/0d/87/a6690a6359a9b1fe61ec4fede02782b10b0a55285d35fa4c4ddbac244c9a/aiothrottle-0.1.3-py3.4.egg" }, { "comment_text": "", "digests": { "md5": "dee2bd40ca45622346ea624723349e7b", "sha256": "cfb1bbf1cbfda7047fe939e84d8db590212979b51cd58ac1fdbe980504d318ec" }, "downloads": -1, "filename": "aiothrottle-0.1.3-py3.5.egg", "has_sig": false, "md5_digest": "dee2bd40ca45622346ea624723349e7b", "packagetype": "bdist_egg", "python_version": "3.5", "requires_python": null, "size": 11209, "upload_time": "2016-08-30T20:31:05", "url": "https://files.pythonhosted.org/packages/b0/2e/4f61abdf3687a1582debdf17e103ea033f1413b8b3ec9a20b79f2b5eb9a6/aiothrottle-0.1.3-py3.5.egg" }, { "comment_text": "", "digests": { "md5": "c41c52038613d4140236de982e6b63af", "sha256": "bc59377504d5f86c03b177811146a0ede9ef797c3d9859c30f2ee6f563086268" }, "downloads": -1, "filename": "aiothrottle-0.1.3-py3-none-any.whl", "has_sig": false, "md5_digest": "c41c52038613d4140236de982e6b63af", "packagetype": "bdist_wheel", "python_version": "3.5", "requires_python": null, "size": 7989, "upload_time": "2016-08-30T20:31:08", "url": "https://files.pythonhosted.org/packages/5a/0b/6393f5916b1a89cf624ac1c914477d2028568b30527bfe6352417b172592/aiothrottle-0.1.3-py3-none-any.whl" }, { "comment_text": "built for Windows-7", "digests": { "md5": "6f9c99fb3ccbf6634e74664923aadd74", "sha256": "4993cb89a60e35389891e98e716c3086ecb5b882aadda71f6f30f7fbab9fbe38" }, "downloads": -1, "filename": "aiothrottle-0.1.3.win-amd64.zip", "has_sig": false, "md5_digest": "6f9c99fb3ccbf6634e74664923aadd74", "packagetype": "bdist_dumb", "python_version": "any", "requires_python": null, "size": 11821, "upload_time": "2016-08-30T20:31:00", "url": "https://files.pythonhosted.org/packages/d7/e9/ddb0c9af9a974b4349ed523dd70b058ee89b450e855f5dbcad080b829f00/aiothrottle-0.1.3.win-amd64.zip" }, { "comment_text": "", "digests": { "md5": "40cfb81bd1549804dd91541bdda1dc69", "sha256": "c28d9dc8a39de30c15a7fd1444525dce2e9706ad4c2c0844fef25d52bf7c7863" }, "downloads": -1, "filename": "aiothrottle-0.1.3.zip", "has_sig": false, "md5_digest": "40cfb81bd1549804dd91541bdda1dc69", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 54886, "upload_time": "2016-08-30T20:30:55", "url": "https://files.pythonhosted.org/packages/b8/17/a26d477b237654c32e1edc62e37a630192e2ca906be6b852a4cd66aa28c9/aiothrottle-0.1.3.zip" } ] }