Source code for taimoe.platform.errors.rate_limit_error

"""Rate limit error — 429 RESOURCE_EXHAUSTED.

Retryable. Callers should respect ``retry_after_seconds`` when present
in ``details``.
"""

from __future__ import annotations

from ._base import TaimoeAPIError, _Retryable, _register_code, _register_status


[docs] @_register_status(429) @_register_code("RESOURCE_EXHAUSTED") class RateLimitError(TaimoeAPIError, _Retryable): """Quota or rate limit was exhausted for this caller.""" default_code = "RESOURCE_EXHAUSTED" @property def retry_after_seconds(self) -> int | None: """Seconds the server asked the caller to wait before retrying, if any.""" value = self.details.get("retry_after_seconds") return int(value) if value is not None else None