RetryHTTP
Retry potentially transient HTTP errors in Python.
See documentation.
Overview
Several HTTP errors are often transient, and might succeed if retried:
- HTTP status codes
429 Too Many Requests
(rate limited)500 Internal Server Error
502 Bad Gateway
503 Service Unavailable
504 Gateway Timeout
- Network errors
- Timeouts
This project aims to simplify retrying these, by extending tenacity
with custom retry and wait strategies, as well as a custom decorator. Defaults are sensible for most use cases, but are fully customizable.
Supports exceptions raised by both requests
and httpx
.
Install
Install from PyPI:
pip install retryhttp
You can also install support for only HTTPX or requests:
pip install retryhttp[httpx]
pip install retryhttp[requests]
Or, install the latest development snapshot from git:
pip install git+https://github.com/austind/retryhttp.git@develop
Quickstart
import httpx
from retryhttp import retry
@retry
def example():
response = httpx.get("https://example.com/")
response.raise_for_status()
return response.text
Contributing
Contributions welcome! Open a discussion and let's chat about your idea. Looking forward to working with you!