limiter.py file-level

at sha256:3 · View file ↗ · Intel ↗

History
1 files
1 commits
0 hotspots
0 🧊 dead
0 💥 blast risk
sha256:3 Merge branch 'feat/rate-limiting' into dev · qa-gs-20261106213818 · Nov 7, 2026
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