""" Simple rate limiter for API requests. """ import time from collections import defaultdict from typing import Dict class RateLimiter: """Simple rate limiter implementation""" def __init__(self, requests_per_minute: int = 100, burst_size: int = 20): self.requests_per_minute = requests_per_minute self.burst_size = burst_size self.requests: Dict[str, list] = defaultdict(list) def is_allowed(self, client_id: str) -> bool: """Check if request is allowed for client""" now = time.time() minute_ago = now - 60 # Clean old requests self.requests[client_id] = [ req_time for req_time in self.requests[client_id] if req_time > minute_ago ] # Check rate limit if len(self.requests[client_id]) >= self.requests_per_minute: return False # Add current request self.requests[client_id].append(now) return True