Module genshin.client.ratelimit
Ratelimit handlers.
Functions
def handle_ratelimits(tries: int = 10,
exception: type[GenshinException] = genshin.errors.VisitsTooFrequently,
delay: float = 0.5) ‑> Callable[[~CallableT], ~CallableT]-
Expand source code
def handle_ratelimits( tries: int = 10, exception: type[errors.GenshinException] = errors.VisitsTooFrequently, delay: float = 0.5, ) -> typing.Callable[[CallableT], CallableT]: """Handle ratelimits for requests.""" return retry( stop=stop_after_attempt(tries), wait=wait_random_exponential(multiplier=delay, min=delay), retry=retry_if_exception_type(exception), reraise=True, before_sleep=before_sleep_log(LOGGER_, logging.DEBUG), )
Handle ratelimits for requests.
def handle_request_timeouts(tries: int = 10, delay: float = 0.5) ‑> Callable[[~CallableT], ~CallableT]
-
Expand source code
def handle_request_timeouts( tries: int = 10, delay: float = 0.5, ) -> typing.Callable[[CallableT], CallableT]: """Handle timeout errors for requests.""" try: from aiohttp_socks import ProxyError except ImportError: return retry( stop=stop_after_attempt(tries), wait=wait_random_exponential(multiplier=delay, min=delay), retry=retry_if_exception_type((TimeoutError, aiohttp.ClientError)), reraise=True, before_sleep=before_sleep_log(LOGGER_, logging.DEBUG), ) else: return retry( stop=stop_after_attempt(tries), wait=wait_random_exponential(multiplier=delay, min=delay), retry=retry_if_exception_type((TimeoutError, aiohttp.ClientError, ProxyError)), reraise=True, before_sleep=before_sleep_log(LOGGER_, logging.DEBUG), )
Handle timeout errors for requests.