Ratelimiting for httpx
Project description
httpx-ratelimit
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.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | 30b23e749c3c639e9d4fc3ff35ff883a05c563469b0a2c79b60a13e9c7826931 |
|
MD5 | 1dfe69ecd78cf645029c74b1a534e9c6 |
|
BLAKE2b-256 | 38358912e02d6e09f58bc024657592799abffc69b01c65fcc1fcd1af657f1f7a |
File details
Details for the file httpx_ratelimiter-0.0.6-py3-none-any.whl
.
File metadata
- Download URL: httpx_ratelimiter-0.0.6-py3-none-any.whl
- Upload date:
- Size: 5.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: python-requests/2.31.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0b81bb25d4cf5cf9b7a817f93d4df2ed3bd2571f74bfc0701450440285c131ec |
|
MD5 | 518f773e82aa7293353627ebb2ed2492 |
|
BLAKE2b-256 | ea9affb494b35cd8e52ec7462afd5f7564afc4b7b769bd4a5c19c5e3d8d9d604 |