Rate limit a function using Redis as a backend
Project description
aio-rate-limiter
Rate limit a function using Redis as a backend. This is a smaller library modeled after python-redis-rate-limit but it uses aioredis. Supports Python 3.6+.
Installation
pip install aio-rate-limiter
Example
import logging
from aio_rate_limiter import RateLimiter, TooManyRequests
import aioredis
async def example():
pool = await aioredis.create_redis_pool("redis://localhost:6379")
try:
async with RateLimiter(
redis_pool,
# Rate limit requests to a resource
"name-of-external-system",
# Allow up to 100 requests in 60 seconds
max_requests=100,
time_window=60
):
async do_work()
except TooManyRequests:
logging.warning("Try again later")
Development
# Install poetry
pip install poetry
# Install all package dependencies
poetry install
# Launch a shell with dependencies available
poetry shell
# Run tests (requires Redis server running at localhost:6379)
pytest
# When you're ready to publish...
# Bump version
poetry version <version>
# Set your pypi token
export POETRY_PYPI_TOKEN_PYPI='...'
# Build and publish
poetry build
poetry publish
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 aio-rate-limiter-0.1.2.tar.gz
.
File metadata
- Download URL: aio-rate-limiter-0.1.2.tar.gz
- Upload date:
- Size: 4.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.1.4 CPython/3.6.8 Darwin/19.6.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | e6b85d9a956b221aa43404c1e1ffc9e74229a96504d168b192ee2f105d84748d |
|
MD5 | dc9c4edbc5848676f35ef0e46b2321d6 |
|
BLAKE2b-256 | ef28ec86596e2bbc74112b43897aaf834bf519668f033ff830930f16eda224f2 |
File details
Details for the file aio_rate_limiter-0.1.2-py3-none-any.whl
.
File metadata
- Download URL: aio_rate_limiter-0.1.2-py3-none-any.whl
- Upload date:
- Size: 4.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.1.4 CPython/3.6.8 Darwin/19.6.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 540c00258a9a02712ee0b9d94f42b6771e25b7072d705a356bc5564b57118549 |
|
MD5 | 0a289fda82da5695dbb87104d5587cca |
|
BLAKE2b-256 | d1cb73618ad27ff856014f9738d38c7943182f49966ce5ac87e1a4833f85d6a7 |