Python retry utility
Project description
A simple way to auto retry a funciton that has the possibility of raising an error. You can either call retry directly or decorate a function to get it to retry. Intelligent matching logic allows you to retry certain exception while raising other exceptions.
Call a function directly:
from retrypy import retry, check def dummy_func(): print "dummy_func called..." raise Exception("House") retry.call( dummy_func, times=2 ) dummy_func called... dummy_func called... Exception: House # usign a check method retry.call( dummy_func, check = check.message_equals("foobar") ) dummy_func called... Exception: House
Decorating a function:
# Only retry IOErrors @retry.decorate(IOError, times=2) def dummy_func(): print "dummy_func called..." raise IOError("House") dummy_func() dummy_func called... dummy_func called... IOError: House # Retry any Exception, use a custom wait function @retry.decorate(times=2, wait=lambda n: 2*n) def dummy_func(): print "dummy_func called..." raise Exception("House") dummy_func() dummy_func called... dummy_func called... Exception: House
Wrap a function and retrun a new callable:
def dummy_func(): print "dummy_func called..." raise Exception("House") func = retry.wrap( dummy_func, times=2 ) func() dummy_func called... dummy_func called... Exception: House
Installation:
>> pip install retrypy
Development:
>> git clone https://github.com/toddsifleet/retrypy >> cd retrypy >> make bootstrap >> make
License:
See LICENSE
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
retrypy-0.0.3.tar.gz
(3.2 kB
view hashes)