From b67f0e5031176d3b7167329ae605a9b11d4e9a05 Mon Sep 17 00:00:00 2001 From: root Date: Sun, 29 Mar 2026 08:31:14 +0000 Subject: [PATCH] fix: add retry_after attribute to KworkRateLimitError --- src/kwork_api/errors.py | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) 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)