⚠️ Drop support for python 3.7
- Add pickling support for
LimiterSession
- Add
bucket
param to specify bucket name when not using per-host rate limiting
- Fix simplifying fractional rate below specified interval
- Add support for floating point values for rate limits
- Update conda-forge package to restrict pyrate-limiter to <3.0
- Add support for python 3.12
- Drop support for python 3.6
- Add support for python 3.11
- Remove upper version constraint for
requests
- Default to not using monotonic time if using a persistent backend (SQLite or Redis)
- Fix 429 response handling: if multiple rate limits are defined, fill bucket according to smallest rate limit
- Default to not passing
bucket_name
argument to backend - Import main
pyrate_limiter
classes into top-level package
- Add handling for 429 responses
- Add
limit_statuses
argument to define additional status codes that indicate a rate limit has been exceeded - Forward any valid superclass keyword args for
LimiterAdapter
, or ifLimiterMixin
is used to create a custom class
- Add shortcut arguments for most common rate limit intervals (
per_second
, etc.) - Add
max_delay
option to specify maximum delay time before raising an error
- Make
rates
a non-variable argument so it can work with a mixin superclass - Add API docs, Readme intro + examples, and Sphinx config for readthedocs.io
Initial PyPI release