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
File details
Details for the file ratelimit_requests_cache-2023.10.30.tar.gz
.
File metadata
- Download URL: ratelimit_requests_cache-2023.10.30.tar.gz
- Upload date:
- Size: 2.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: pdm/2.8.0 CPython/3.11.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | a5a182db7768d902a05a39c38d71e592296b90164d3ca4a544995e988d832cd0 |
|
MD5 | ff3ad1dd496bc6fe957adc83efe9c132 |
|
BLAKE2b-256 | b31984e9ade47eef5630043ee7452544096d2dc5d84d04282358f27462be90b0 |
File details
Details for the file ratelimit_requests_cache-2023.10.30-py3-none-any.whl
.
File metadata
- Download URL: ratelimit_requests_cache-2023.10.30-py3-none-any.whl
- Upload date:
- Size: 3.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: pdm/2.8.0 CPython/3.11.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | ba1e54454f4e34b1bd5923f7c9f000ef7c3c6e2c53f6e11e10d1ccd2640ecdd0 |
|
MD5 | aa840304813a68081d3d37f994091b15 |
|
BLAKE2b-256 | 5a627b2e22758595a7a4ec341a8b49b8d2316319d2d7060af5b71ca8a1ec8b6b |