Skip to main content

httpx-ratelimit

PyPI version

Simple wrapper around PyrateLimiter that adds integration with httpx library

Usage

Using per_* kwargs:
from time import time

from httpx import Client

from httpx_ratelimiter import LimiterTransport

# Apply a rate limit of 5 requests per second to all requests
# if wait time between request will be more than 600ms, raise an BucketFullException
with Client(transport=LimiterTransport(per_second=5, max_delay=600)) as c:
    start = time()
    for _i in range(100):
        print(
            f'[t + {time() - start: .2f}] got response: {c.get("https://httpbin.org/status/200,429")}'
        )
Using custom list of rates
from time import time

from httpx import Client

from httpx_ratelimiter import LimiterTransport
from pyrate_limiter import Limiter, Rate, Duration

# limit 5 requests over 2 seconds and 10 requests over 1 minute
rates = [Rate(5, Duration.SECOND * 2), Rate(10, Duration.MINUTE)]
# if wait time between request will be more than 600ms, silently fail
with Client(transport=LimiterTransport(rates=rates, max_delay=600, raise_when_fail=False)) as c:
    start = time()
    for _i in range(100):
        print(
            f'[t + {time() - start: .2f}] got response: {c.get("https://httpbin.org/status/200,429")}'
        )

Thanks

Thank to original Requests-ratelimiter author for idea and backbone of a project.

Download files

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

Source Distribution

httpx_ratelimiter-0.0.6.tar.gz (7.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

httpx_ratelimiter-0.0.6-py3-none-any.whl (5.9 kB view details)

Uploaded Python 3

File details

Details for the file httpx_ratelimiter-0.0.6.tar.gz.

File metadata

  • Download URL: httpx_ratelimiter-0.0.6.tar.gz
  • Upload date:
  • Size: 7.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: python-requests/2.31.0

File hashes

Hashes for httpx_ratelimiter-0.0.6.tar.gz
Algorithm Hash digest
SHA256 30b23e749c3c639e9d4fc3ff35ff883a05c563469b0a2c79b60a13e9c7826931
MD5 1dfe69ecd78cf645029c74b1a534e9c6
BLAKE2b-256 38358912e02d6e09f58bc024657592799abffc69b01c65fcc1fcd1af657f1f7a

See more details on using hashes here.

File details

Details for the file httpx_ratelimiter-0.0.6-py3-none-any.whl.

File metadata

File hashes

Hashes for httpx_ratelimiter-0.0.6-py3-none-any.whl
Algorithm Hash digest
SHA256 0b81bb25d4cf5cf9b7a817f93d4df2ed3bd2571f74bfc0701450440285c131ec
MD5 518f773e82aa7293353627ebb2ed2492
BLAKE2b-256 ea9affb494b35cd8e52ec7462afd5f7564afc4b7b769bd4a5c19c5e3d8d9d604

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.0.6 This release

2 files

0.0.4

2 files

0.0.3

2 files

0.0.2

2 files

0.0.1

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page