Retrace provides a configurable decorator which allows you to wrap Python callables and retry them on errors or other specific conditions.
It is simple and elegant.
See the documentation at:
http://d0ugal.github.io/retrace/
First, pip install retrace
.
import retrace
@retrace.retry
def unstable():
# ...
Boom. Done.
This function will now be retied up to 5 times if it raises an exception. You can customise how often it is retried, limit the exceptions and add validators to further verify the return value. Check out the docs for all this and more.