diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 607ed6c..469005a 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -12,12 +12,16 @@ jobs: '3.11', '3.12', ] - name: Python ${{ matrix.python-version }} + pip-override: [ + '', + 'pip install "urllib3<2"', + ] + name: Python ${{ matrix.python-version }} ${{ matrix.pip-override }} steps: - uses: actions/checkout@v4 - uses: actions/setup-python@v5 with: python-version: ${{ matrix.python-version }} architecture: x64 - - run: make test + - run: make test PIP_OVERRIDES='${{ matrix.pip-override }}' - run: make lint diff --git a/Makefile b/Makefile index ca7a773..90273fb 100644 --- a/Makefile +++ b/Makefile @@ -7,6 +7,7 @@ venv-tools: requirements.tools.txt rm -rf venv-tools python3 -m venv venv-tools venv-tools/bin/pip install -r requirements.tools.txt + ${PIP_OVERRIDES} .PHONY: clean clean: diff --git a/flareio/api_client.py b/flareio/api_client.py index 290e099..8d551df 100644 --- a/flareio/api_client.py +++ b/flareio/api_client.py @@ -47,18 +47,23 @@ def _create_session() -> requests.Session: ), ) + retry = Retry( + total=5, + backoff_factor=2, + status_forcelist=[429, 502, 503, 504], + allowed_methods={"GET", "POST"}, + ) + + # Support for urllib3 < 2.X + if hasattr(Retry, "backoff_max"): + retry.backoff_max = 15 + + retry.backoff_max = 15 + # Enable retries session.mount( "https://", - HTTPAdapter( - max_retries=Retry( - total=5, - backoff_factor=2, - status_forcelist=[429, 502, 503, 504], - allowed_methods={"GET", "POST"}, - backoff_max=15, - ) - ), + HTTPAdapter(max_retries=retry), ) return session