Socket
Socket
Sign inDemoInstall

aiothrottle

Package Overview
Dependencies
0
Maintainers
1
Alerts
File Explorer

Install Socket

Detect and block malicious and high-risk dependencies

Install

    aiothrottle

Throttling, flow controlling StreamReader for aiohttp


Maintainers
1

Readme

aiothrottle

Throttling, flow controlling StreamReader for aiohttp

.. image:: https://img.shields.io/pypi/v/aiothrottle.svg :target: https://pypi.python.org/pypi/aiothrottle :alt: Package Version

.. image:: https://travis-ci.org/panda73111/aiothrottle.svg?branch=master :target: https://travis-ci.org/panda73111/aiothrottle :alt: Build Status

.. image:: https://coveralls.io/repos/panda73111/aiothrottle/badge.svg?branch=master&service=github :target: https://coveralls.io/github/panda73111/aiothrottle?branch=master :alt: Coverage Status

.. image:: https://readthedocs.org/projects/aiothrottle/badge/?version=latest :target: https://readthedocs.org/projects/aiothrottle/?badge=latest :alt: Documentation Status

.. image:: https://img.shields.io/pypi/pyversions/aiothrottle.svg :target: https://www.python.org/ :alt: Python Version

.. image:: https://img.shields.io/pypi/l/aiothrottle.svg :target: http://opensource.org/licenses/GPL-3.0 :alt: GPLv3

Requirements

License

aiothrottle is offered under the GPL v3 license.

Documentation

https://aiothrottle.readthedocs.org/

Source code

The latest developer version is available in a github repository: https://github.com/panda73111/aiothrottle

Usage

.. code:: python

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

Keywords

FAQs


Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc