Ratelimit Python requests, but only if they're not served from the cache
Project description
ratelimit_requests_cache
Ratelimit requests in Python, but only if they're not served from the cache
This package combines the best bits of the ratelimit
module and the requests_cache
module.
It will rate limit outgoing requests, but not count invocations if a request can be served from the cache.
Usage
import requests
import requests_cache
from ratelimit import sleep_and_retry
from ratelimit_requests_cache import limits_if_not_cached
@sleep_and_retry
@limits_if_not_cached(calls=1, period=1)
def get_from_httpbin(i):
return requests.get(f'https://httpbin.org/anything?i={i}')
# Enable requests caching
requests_cache.install_cache()
# Notice that only the first ten requests will be ratelimited to 1 request / second
# After that, it's a lot quicker since requests can be served from the cache
# and the ratelimiter does not engage
for i in range(100):
get_from_httpbin(i % 10)
print(i)
Installation
python3 -m pip install ratelimit_requests_cache
Project details
Release history Release notifications | RSS feed
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
Close
Hashes for ratelimit_requests_cache-2023.10.30.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | a5a182db7768d902a05a39c38d71e592296b90164d3ca4a544995e988d832cd0 |
|
MD5 | ff3ad1dd496bc6fe957adc83efe9c132 |
|
BLAKE2b-256 | b31984e9ade47eef5630043ee7452544096d2dc5d84d04282358f27462be90b0 |
Close
Hashes for ratelimit_requests_cache-2023.10.30-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ba1e54454f4e34b1bd5923f7c9f000ef7c3c6e2c53f6e11e10d1ccd2640ecdd0 |
|
MD5 | aa840304813a68081d3d37f994091b15 |
|
BLAKE2b-256 | 5a627b2e22758595a7a4ec341a8b49b8d2316319d2d7060af5b71ca8a1ec8b6b |