Coverage for src/qdrant_loader_core/llm/ratelimit.py: 100%
10 statements
« prev ^ index » next coverage.py v7.10.6, created at 2025-09-08 06:01 +0000
« prev ^ index » next coverage.py v7.10.6, created at 2025-09-08 06:01 +0000
1from __future__ import annotations
3import asyncio
6class AsyncRateLimiter:
7 """Minimal async rate limiter placeholder.
9 In later phases, enforce RPM/TPM and concurrency.
10 """
12 def __init__(self, max_concurrency: int = 5):
13 self._semaphore = asyncio.Semaphore(max_concurrency)
15 async def __aenter__(self):
16 await self._semaphore.acquire()
17 return self
19 async def __aexit__(self, exc_type, exc, tb):
20 self._semaphore.release()