fix(ci): fix black/ruff failures, add CoC and PR template
- Fix Python formatting (sync no longer strips blank lines from .py files) - Remove test_community_build.py (tests private sync module) - Fix ruff warnings in test files - Add CODE_OF_CONDUCT.md - Add .github/PULL_REQUEST_TEMPLATE.md Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -24,6 +24,7 @@ from typing import Any
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
|
||||
@dataclass
|
||||
class RateLimitConfig:
|
||||
"""Configuration for rate limits at different time intervals."""
|
||||
@@ -42,6 +43,7 @@ class RateLimitConfig:
|
||||
per_day=int(os.getenv(f"{env_prefix}RATE_LIMIT_PER_DAY", "10000")),
|
||||
)
|
||||
|
||||
|
||||
@dataclass
|
||||
class TokenBucket:
|
||||
"""
|
||||
@@ -110,6 +112,7 @@ class TokenBucket:
|
||||
tokens_needed = tokens - self.tokens
|
||||
return tokens_needed / self.refill_rate
|
||||
|
||||
|
||||
@dataclass
|
||||
class ClientRateLimitState:
|
||||
"""Track rate limit state for a single client."""
|
||||
@@ -188,6 +191,7 @@ class ClientRateLimitState:
|
||||
"uptime_seconds": uptime,
|
||||
}
|
||||
|
||||
|
||||
class RateLimiter:
|
||||
"""
|
||||
Rate limiter using Token Bucket algorithm.
|
||||
@@ -403,9 +407,11 @@ class RateLimiter:
|
||||
f"{config.per_minute}/min, {config.per_hour}/hour, {config.per_day}/day"
|
||||
)
|
||||
|
||||
|
||||
# Singleton instance
|
||||
_rate_limiter: RateLimiter | None = None
|
||||
|
||||
|
||||
def get_rate_limiter() -> RateLimiter:
|
||||
"""Get or create the global rate limiter instance."""
|
||||
global _rate_limiter
|
||||
|
||||
Reference in New Issue
Block a user