Compare commits

...

2 Commits

Author SHA1 Message Date
root
b67f0e5031 fix: add retry_after attribute to KworkRateLimitError
Some checks failed
PR Checks / test (pull_request) Failing after 26s
PR Checks / security (pull_request) Failing after 9s
2026-03-29 08:51:28 +00:00
root
2ff64ff512 revert: restore PR-only trigger 2026-03-29 08:46:38 +00:00
2 changed files with 14 additions and 6 deletions

View File

@ -1,10 +1,8 @@
name: PR Checks name: PR Checks
on: on:
push:
branches: ['**']
pull_request: pull_request:
branches: ['**'] branches: [main]
concurrency: concurrency:
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}

View File

@ -131,16 +131,26 @@ class KworkRateLimitError(KworkApiError):
Возникает при слишком частых запросах к API. Возникает при слишком частых запросах к API.
Рекомендуется сделать паузу перед повторным запросом. Рекомендуется сделать паузу перед повторным запросом.
Attributes:
retry_after: Время ожидания в секундах (если указано сервером).
Example: Example:
import asyncio import asyncio
try: try:
await client.catalog.get_list() await client.catalog.get_list()
except KworkRateLimitError: except KworkRateLimitError as e:
await asyncio.sleep(5) # Пауза 5 секунд 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) super().__init__(message, 429, response)