Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/mharrisb1/httpx-retry
Middleware for implementing retry policies with HTTPX
https://github.com/mharrisb1/httpx-retry
httpx retry retry-policy
Last synced: 20 days ago
JSON representation
Middleware for implementing retry policies with HTTPX
- Host: GitHub
- URL: https://github.com/mharrisb1/httpx-retry
- Owner: mharrisb1
- License: mit
- Created: 2024-12-21T17:32:31.000Z (about 2 months ago)
- Default Branch: main
- Last Pushed: 2025-01-22T21:17:36.000Z (21 days ago)
- Last Synced: 2025-01-22T22:24:01.073Z (21 days ago)
- Topics: httpx, retry, retry-policy
- Language: Python
- Homepage:
- Size: 779 KB
- Stars: 2
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
Awesome Lists containing this project
README
![]()
HTTPX Retry - Middleware for implementing retry policies with HTTPX---
## Usage
Retries are defined at the transport layer.
```python
import httpxfrom httpx_retry import HTTPRetryTransport, RetryPolicy
exponential_retry = (
RetryPolicy()
.with_attempts(3)
.with_min_delay(100)
.with_multiplier(2)
.with_retry_on(lambda code: code >= 500)
)client = httpx.Client(transport=HTTPRetryTransport(policy=exponential_retry))
res = client.get("https://example.com")
```## Examples
There are examples of implementing common retry policies in [`/tests`](./tests)
- [Adaptive Retry](./tests/test_adaptive_retry.py)
- [Circui Breaker](./tests/test_circuit_breaker.py)
- [Exponential Backoff](./tests/test_exponential_backoff.py)
- [Fibonacci Backoff](./tests/test_fibonacci_backoff.py)
- [Fixed Delay](./tests/test_fixed_delay.py)
- [Immediate Retry](./tests/test_immediate_retry.py)
- [Jitter](./tests/test_jitter.py)
- [Linear Backoff](./tests/test_linear_backoff.py)## Installation
[![PyPI version](https://badge.fury.io/py/httpx-retry.svg)](https://badge.fury.io/py/httpx-retry)
[![PyPI - Python Version](https://img.shields.io/pypi/pyversions/httpx-retry.svg)](https://pypi.org/project/httpx-retry/)
[![PyPI - Downloads](https://img.shields.io/pypi/dm/httpx-retry)](https://pypi.org/project/httpx-retry/)Available in [PyPI](https://pypi.org/project/httpx-retry)
```sh
pip install httpx-retry
```## License
[![PyPI - License](https://img.shields.io/pypi/l/httpx-retry)](https://opensource.org/blog/license/mit)
See [LICENSE](https://github.com/mharrisb1/httpx-retry/blob/main/LICENSE) for more info.
## Contributing
[![Open Issues](https://img.shields.io/github/issues/mharrisb1/httpx-retry)](https://github.com/mharrisb1/httpx-retry/issues)
[![Stargazers](https://img.shields.io/github/stars/mharrisb1/httpx-retry?style)](https://pypistats.org/packages/httpx-retry)See [CONTRIBUTING.md](https://github.com/mharrisb1/httpx-retry/blob/main/CONTRIBUTING.md) for info on PRs, issues, and feature requests.
## Changelog
See [CHANGELOG.md](https://github.com/mharrisb1/httpx-retry/blob/main/CHANGELOG.md) for summarized notes on changes or view [releases](https://github.com/mharrisb1/httpx-retry/releases) for more details information on changes.