Skip to main content

No project description provided

Project description

Simple Token Bucket

Documentation PyPI GitHub

A simple token bucket implementation.

Project philosophy

simple-token-bucket is meant to be a light and very simple to use token bucket library. Simple is better than complex.

Installation

simple-token-bucket is available on PyPI:

python -m pip install simple-token-bucket[redis]

This project requires Python 3.8 or newer to run.

Usage example

from simple_token_bucket import SimpleTokenBucket
from simple_token_bucket.backends.redis import RedisBackend

# Create a new bucket
third_party_api_rate_limit_bucket = SimpleTokenBucket(
    name="third_party_api",
    bucket_size=3,
    interval=10,
    backend=RedisBackend.from_url("redis://localhost:6379/0")
)

third_party_api_rate_limit_bucket.try_get_token()
third_party_api_rate_limit_bucket.try_get_token()
third_party_api_rate_limit_bucket.try_get_token()

# will raises a NotEnoughTokens exception.
third_party_api_rate_limit_bucket.try_get_token()

# after 10 seconds everything works again.
import time
time.sleep(10)
third_party_api_rate_limit_bucket.try_get_token()

The latest documentation can be found here

https://simple-token-bucket.readthedocs.io/en/latest/

Contributing

Contributions are welcome. See Contributing section in docs.

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

simple_token_bucket-0.2.0.tar.gz (5.5 kB view details)

Uploaded Source

Built Distribution

simple_token_bucket-0.2.0-py3-none-any.whl (4.5 kB view details)

Uploaded Python 3

File details

Details for the file simple_token_bucket-0.2.0.tar.gz.

File metadata

  • Download URL: simple_token_bucket-0.2.0.tar.gz
  • Upload date:
  • Size: 5.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: python-httpx/0.27.0

File hashes

Hashes for simple_token_bucket-0.2.0.tar.gz
Algorithm Hash digest
SHA256 83710d5fce3c2678334fd43ba45ccf3eb339c9c7fdf9d1fd0a057df41439cf60
MD5 ba68269837f2e599d024ede7b5ee97d4
BLAKE2b-256 0ff7f81fa26a4197af5513df44f0f63d5646fadc96d2270efe52d9d46e0472c9

See more details on using hashes here.

File details

Details for the file simple_token_bucket-0.2.0-py3-none-any.whl.

File metadata

File hashes

Hashes for simple_token_bucket-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 9558bde377a07b6733f09d1c326d5fcef9976ad718a08874d2cc2a00d259fedc
MD5 44ffdc04e557f6a1e63bef17f622b5f0
BLAKE2b-256 232e152325179ae5f24a182c6ef1a9adeccd9943e5b18cd1322bf91e6f9c9217

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page