limiter.py python
16 lines 451 B
Raw
sha256:34d4eb47b1e569900e3cb90e13865f893f915e20724ef5696833fdef0cdd93fa Merge branch 'feat/rate-limiting' into dev Opus 5.5 patch 2 days ago
1 import time
2
3
4 class TokenBucket:
5 def __init__(self, rate, capacity):
6 self.rate, self.capacity = rate, capacity
7 self.tokens, self.stamp = capacity, time.monotonic()
8
9 def take(self):
10 now = time.monotonic()
11 self.tokens = min(self.capacity, self.tokens + (now - self.stamp) * self.rate)
12 self.stamp = now
13 if self.tokens >= 1:
14 self.tokens -= 1
15 return True
16 return False
File History 1 commit
sha256:34d4eb47b1e569900e3cb90e13865f893f915e20724ef5696833fdef0cdd93fa Merge branch 'feat/rate-limiting' into dev Opus 5.5 patch 2 days ago