Python Retry Decorator
- python_retry.retry(max_retries: int = 3, backoff_factor: int = 1, retry_on: (<class 'Exception'>, ) = None, supress_exception: bool = False, retry_logger: logging.Logger = None)
Retry decorator
- Parameters
max_retries – int. Defaults to 3.
backoff_factor – int. Defaults to 1.
retry_on – tuple. A tuple of exceptions.
When no argument is passed all exceptions are catched. Defaults to None. :param supress_exception: bool. Supress the last exception raised. Defaults to False. :param retry_logger: logger.warning(fmt, error, delay) will be called on failed attempts. Default: retry.logging_logger. if None, logging is disabled.
The sleep time is calculated as sleep_time = backoff_factor * (2 ** (n_retry - 1)).
Examples
>>> from python_retry import retry >>> import pytest >>> import logging >>> >>> LOGGER = logging.getLogger("foo") >>> >>> @retry() ... def div(num: int, den: int): ... return num/den >>> >>> div(1, 0) >>> >>> @retry( ... retry_on=(ZeroDivisionError,), ... max_retries=2, ... backoff_factor=1, ... supress_exception=True, ... retry_logger=LOGGER ... ) ... def div(num: int, den: int): ... return num / den >>> >>> div(1, 0)