easy to use retry decorator.
- No external dependency (stdlib only).
- (Optionally) Preserve function signatures (pip install decorator).
- Original traceback, easy to debug.
$ pip install retry
def retry(exceptions=Exception, tries=-1, delay=0, backoff=1, logger=logging_logger): """Return a retry decorator. :param exceptions: an exception or a tuple of exceptions to catch. default: Exception. :param tries: the maximum number of attempts. default: -1 (infinite). :param delay: initial delay between attempts. default: 0. :param backoff: multiplier applied to delay between attempts. default: 1 (no backoff). :param logger: logger.warning(fmt, error, delay) will be called on failed attempts. default: retry.logging_logger. if None, logging is disabled. """
various retrying logic can be achieved by combination of arguments.
from retry import retry
@retry() def make_trouble(): '''Retry until succeed'''
@retry(ZeroDivisionError, tries=3, delay=2) def make_trouble(): '''Retry on ZeroDivisionError, raise error after 3 attempts, sleep 2 seconds between attempts.'''
@retry((ValueError, TypeError), delay=1, backoff=2) def make_trouble(): '''Retry on ValueError or TypeError, sleep 1, 2, 4, 8, ... seconds between attempts.'''
# If you enable logging, you can get warnings like 'ValueError, retrying in # 1 seconds' if __name__ == '__main__': import logging logging.basicConfig() make_trouble()
Release history Release notifications | RSS feed
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
|Filename, size||File type||Python version||Upload date||Hashes|
|Filename, size retry-0.7.0-py2-none-any.whl (4.8 kB)||File type Wheel||Python version 2.7||Upload date||Hashes View|
|Filename, size retry-0.7.0.tar.gz (2.5 kB)||File type Source||Python version None||Upload date||Hashes View|