API Reference¶
Rate Limiting API¶
RateLimit¶
Configuration class for rate limiting parallel operations.
from pyarallel import RateLimit
rate = RateLimit(
count: float,
interval: Literal["second", "minute", "hour"] = "second"
)
Parameters¶
count
(float): Number of operations allowed per intervalinterval
(str): Time interval for rate limiting ("second", "minute", "hour")
Properties¶
per_second
(float): Converts the rate to operations per second
Examples¶
# Define rate limits
per_minute = RateLimit(100, "minute") # 100 ops/minute
per_hour = RateLimit(1000, "hour") # 1000 ops/hour
# Use with parallel decorator
@parallel(rate_limit=per_minute)
def rate_limited_function(item): ...
TokenBucket¶
Thread-safe implementation of the token bucket algorithm for rate limiting.
from pyarallel import TokenBucket
bucket = TokenBucket(
rate_limit: RateLimit,
capacity: int = None
)
Parameters¶
rate_limit
(RateLimit): Rate limiting configurationcapacity
(int, optional): Maximum number of tokens the bucket can hold
Methods¶
get_token() -> bool
: Try to get a token from the bucketwait_for_token()
: Block until a token is available