Spaces:
Sleeping
Sleeping
| import asyncio | |
| from abc import ABC, abstractmethod | |
| class BaseAdapter(ABC): | |
| name: str = "Unknown" | |
| source_type: str = "stub" # "live" or "stub" | |
| base_url: str = "" | |
| def __init__(self, rate_limit_seconds: float = 1.0): | |
| self._rate_limit = rate_limit_seconds | |
| self._last_call = 0 | |
| async def _throttle(self): | |
| now = asyncio.get_event_loop().time() | |
| elapsed = now - self._last_call | |
| if elapsed < self._rate_limit: | |
| await asyncio.sleep(self._rate_limit - elapsed) | |
| self._last_call = asyncio.get_event_loop().time() | |
| async def search(self, query: str): | |
| pass |