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!

Makes it easy to respect rate limits.

Project Description

Ratelim is a simple Python library that limits the number of times a function can be called during a time interval. It is particularly useful when using online APIs, which commonly enforce rate limits.

Features

  • Works in Py2 and Py3.
  • Greedy and patient rate limiting.
  • Preserves function signature.

Installation

$ pip install ratelim

Usage

Say you want to call a function at most for n_calls during a n_seconds time interval.

# 10 times in 5 seconds
@ratelim.greedy(10, 5)
def hello():
    print("hello")

The greedy rate limiter calls does not delay any function call until it’s really necessary.

In some scenarios, for example when crawling data from an API, you want to maximize the number of calls you make and you want to avoid sending them in short sequence. To this aim, we can use the patient rate limiter. It distributes calls evenly between each other.

# 10 times in 5 seconds
# Gets called at most every 0.5 seconds
@ratelim.patient(10, 5)
def hello():
    print("hello")

LICENSE

MIT.

Release History

Release History

This version
History Node

0.1.6

History Node

0.1.5

History Node

0.1.4

History Node

0.1.3

History Node

0.1.2

History Node

0.1.1

History Node

0.1.0

History Node

0.1.0a0

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
ratelim-0.1.6-py2.py3-none-any.whl (4.0 kB) Copy SHA256 Checksum SHA256 py2.py3 Wheel Feb 27, 2015
ratelim-0.1.6.tar.gz (2.8 kB) Copy SHA256 Checksum SHA256 Source Feb 27, 2015

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