Skip to main content
This is a pre-production deployment of Warehouse. Changes made here affect the production instance of PyPI (pypi.python.org).
Help us improve Python packaging - Donate today!

Throttling, flow controlling StreamReader for aiohttp

Project Description

aiothrottle

Throttling, flow controlling StreamReader for aiohttp

Requirements

License

aiothrottle is offered under the GPL v3 license.

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
Release History

Release History

This version
History Node

0.1.3

History Node

0.1.2.post0

History Node

0.1.2

History Node

0.1.1

History Node

0.1.0

Download Files

Download Files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

File Name & Checksum SHA256 Checksum Help Version File Type Upload Date
aiothrottle-0.1.3-py3.4.egg (11.2 kB) Copy SHA256 Checksum SHA256 3.4 Egg Aug 30, 2016
aiothrottle-0.1.3-py3.5.egg (11.2 kB) Copy SHA256 Checksum SHA256 3.5 Egg Aug 30, 2016
aiothrottle-0.1.3-py3-none-any.whl (8.0 kB) Copy SHA256 Checksum SHA256 3.5 Wheel Aug 30, 2016
aiothrottle-0.1.3.win-amd64.zip (11.8 kB) Copy SHA256 Checksum SHA256 any Dumb Binary Aug 30, 2016
aiothrottle-0.1.3.zip (54.9 kB) Copy SHA256 Checksum SHA256 Source Aug 30, 2016

Supported By

WebFaction WebFaction Technical Writing Elastic Elastic Search Pingdom Pingdom Monitoring Dyn Dyn DNS Sentry Sentry Error Logging CloudAMQP CloudAMQP RabbitMQ Heroku Heroku PaaS Kabu Creative Kabu Creative UX & Design Fastly Fastly CDN DigiCert DigiCert EV Certificate Rackspace Rackspace Cloud Servers DreamHost DreamHost Log Hosting