counts = {} def allow(key, now): window = now // 60 bucket = (key, window) counts[bucket] = counts.get(bucket, 0) + 1 return counts[bucket] <= 3 assert [allow("demo", 10) for _ in range(4)] == [True, True, True, False] assert allow("demo", 60) print("fourth attempt denied; next window allowed")