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

1from __future__ import annotations 

2 

3import asyncio 

4 

5 

6class AsyncRateLimiter: 

7 """Minimal async rate limiter placeholder. 

8 

9 In later phases, enforce RPM/TPM and concurrency. 

10 """ 

11 

12 def __init__(self, max_concurrency: int = 5): 

13 self._semaphore = asyncio.Semaphore(max_concurrency) 

14 

15 async def __aenter__(self): 

16 await self._semaphore.acquire() 

17 return self 

18 

19 async def __aexit__(self, exc_type, exc, tb): 

20 self._semaphore.release()