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.31.tar.gz
(3.6 kB
view details)
File details
Details for the file retrypy-0.0.31.tar.gz.
File metadata
- Download URL: retrypy-0.0.31.tar.gz
- Upload date:
- Size: 3.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
bfe43c756a8ff4bddb0b7c7681a99d495193f762f57872c3dc4c873a9c944acc
|
|
| MD5 |
7e44ad7af1908d3a6b99a41c7a8a8f76
|
|
| BLAKE2b-256 |
aae022ea807d034cf0ba7d458bbab98f1be829f0f80c73ed138f712b7cb6da2d
|