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.

Release files for httpx_ratelimiter 0.0.6

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for httpx_ratelimiter 0.0.6
File Size Uploaded
httpx_ratelimiter-0.0.6.tar.gz 7.4 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for httpx_ratelimiter 0.0.6
File Interpreter ABI Platform
httpx_ratelimiter-0.0.6-py3-none-any.whl Python 3 none any Details

Total release size: 13.3 kB

Release files / httpx_ratelimiter-0.0.6.tar.gz

Download URL httpx_ratelimiter-0.0.6.tar.gz
Size 7.4 kB
Tags Source
SHA-256 checksum
How to use checksums
30b23e749c3c639e9d4fc3ff35ff883a05c563469b0a2c79b60a13e9c7826931
BLAKE2b-256 checksum
How to use checksums
38358912e02d6e09f58bc024657592799abffc69b01c65fcc1fcd1af657f1f7a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via python-requests/2.31.0

Release files / httpx_ratelimiter-0.0.6-py3-none-any.whl

Download URL httpx_ratelimiter-0.0.6-py3-none-any.whl
Size 5.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
0b81bb25d4cf5cf9b7a817f93d4df2ed3bd2571f74bfc0701450440285c131ec
BLAKE2b-256 checksum
How to use checksums
ea9affb494b35cd8e52ec7462afd5f7564afc4b7b769bd4a5c19c5e3d8d9d604
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via python-requests/2.31.0

Release history Release notifications | RSS feed

This release

0.0.6 This release

2 release files

0.0.4

2 release files

0.0.3

2 release files

0.0.2

2 release files

0.0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page