weakref
#
This module provides utility methods for retrying methods until they no longer fail.
- retry(retry_timeout=None, retry_period=None, retry_on_error=<function _default_retry_on_error>)[source]#
Decorator for a method that needs to be executed until it not longer fails or until retry_on_error returns False.
The decorator arguments can be overriden by using them when calling the decorated method.
Generator functions are required to have a start_index argument which allows the method to start iterating from the last failure when called on retry.
- Parameters:
retry_timeout (num)
retry_period (num) – sleep before retry
retry_on_error (callable or None) – checks whether an exception is eligible for retry
- retry_contextmanager(retry_timeout=None, retry_period=None, retry_on_error=<function _default_retry_on_error>)[source]#
Decorator to make a context manager from a method that needs to be entered until it no longer fails or until retry_on_error returns False.
The decorator arguments can be overriden by using them when calling the decorated method.
- Parameters:
retry_timeout (num)
retry_period (num) – sleep before retry
retry_on_error (callable or None) – checks whether an exception is eligible for retry
- retry_in_subprocess(retry_timeout=None, retry_period=None, retry_on_error=<function _default_retry_on_error>)[source]#
Same as retry but it also retries segmentation faults.
As subprocesses are spawned, you cannot use this decorator with the “@” syntax because the decorated method needs to be an attribute of a module:
def _method(*args, **kw): ... method = retry_in_subprocess()(_method)
- Parameters:
retry_timeout (num)
retry_period (num) – sleep before retry
retry_on_error (callable or None) – checks whether an exception is eligible for retry