diff --git a/src/kwork_api/errors.py b/src/kwork_api/errors.py index 393204b..4004127 100644 --- a/src/kwork_api/errors.py +++ b/src/kwork_api/errors.py @@ -131,16 +131,26 @@ class KworkRateLimitError(KworkApiError): Возникает при слишком частых запросах к API. Рекомендуется сделать паузу перед повторным запросом. + Attributes: + retry_after: Время ожидания в секундах (если указано сервером). + Example: import asyncio try: await client.catalog.get_list() - except KworkRateLimitError: - await asyncio.sleep(5) # Пауза 5 секунд + except KworkRateLimitError as e: + wait_time = e.retry_after or 5 + await asyncio.sleep(wait_time) """ - def __init__(self, message: str = "Rate limit exceeded", response: Optional[Any] = None): + def __init__( + self, + message: str = "Rate limit exceeded", + response: Optional[Any] = None, + retry_after: Optional[int] = None, + ): + self.retry_after = retry_after super().__init__(message, 429, response)