limiter.py
python
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