Throttling, flow controlling StreamReader for aiohttp
Project description
aiothrottle
Throttling, flow controlling StreamReader for aiohttp
Requirements
Python >= 3.4.2
License
aiothrottle is offered under the GPL v3 license.
Documentation
Source code
The latest developer version is available in a github repository: https://github.com/panda73111/aiothrottle
Usage
import asyncio
import aiohttp
import aiothrottle
@asyncio.coroutine
def load_file(url):
response = yield from aiohttp.request("GET", url)
data = yield from response.read()
with open("largefile.zip", "wb") as file:
file.write(data)
response.close()
# setup the rate limit to 200 KB/s
aiothrottle.limit_rate(200 * 1024)
# download a large file without blocking bandwidth
loop = asyncio.get_event_loop()
loop.run_until_complete(load_file(
"http://example.com/largefile.zip"))
# unset the rate limit
aiothrottle.unlimit_rate()
TODO
Upload rate limiting class
General socket limiting class
CHANGES
0.1.3 (30-08-2016)
Set minimum required Python version to 3.4.2, the same as aiohttp 1.0.0
Made aiothrottle compatible with current aiohttp version again (Now using aiohttp.StreamReader._buffer_size)
Catching RuntimeError when trying to pause a closing _SSLProtocolTransport
0.1.2 (08-08-2015)
Fixed resuming transport too often
Added ‘rate_limit’ and ‘throttling’ properties
Fixed buffer limit control
0.1.1 (08-02-2015)
Added limit_rate() and unlimit_rate() globally and response-wise
Raising ValueError on invalid rate limit
Cancelling _check_handle in Throttle’s destructor
0.1.0 (08-01-2015)
Initial release with basic throttling functionality
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distributions
Hashes for aiothrottle-0.1.3-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | bc59377504d5f86c03b177811146a0ede9ef797c3d9859c30f2ee6f563086268 |
|
MD5 | c41c52038613d4140236de982e6b63af |
|
BLAKE2b-256 | 5a0b6393f5916b1a89cf624ac1c914477d2028568b30527bfe6352417b172592 |