Metadata-Version: 2.0
Name: aiothrottle
Version: 0.1.2
Summary: Throttling, flow controlling StreamReader for aiohttp
Home-page: https://github.com/panda73111/aiothrottle
Author: Sebastian Hüther
Author-email: sebastian.huether@gmx.de
License: GPLv3
Download-URL: https://github.com/panda73111/aiothrottle/archive/v0.1.1.tar.gz
Keywords: throttle bandwidth limit download http throughput asyncio aiohttp
Platform: UNKNOWN
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: Topic :: Internet :: WWW/HTTP
Classifier: License :: OSI Approved :: GNU General Public License v3 (GPLv3)
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.3
Classifier: Programming Language :: Python :: 3.4
Requires-Dist: aiohttp

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

- Python >= 3.3
- asyncio https://pypi.python.org/pypi/asyncio
- aiohttp https://pypi.python.org/pypi/aiohttp


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.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

