Skip to content

Commit

Permalink
Added urllib3 < 2.X compatibility for the Retry object
Browse files Browse the repository at this point in the history
Added matrix to test if it also works with urllib3 <2.x
  • Loading branch information
Marc-Antoine Hinse committed Oct 21, 2024
1 parent 4c583f3 commit 2c326ed
Show file tree
Hide file tree
Showing 4 changed files with 27 additions and 11 deletions.
7 changes: 5 additions & 2 deletions .github/workflows/tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,12 +12,15 @@ jobs:
'3.11',
'3.12',
]
name: Python ${{ matrix.python-version }}
include:
- python-version: '3.9'
pip-group: 'urllib3_1'
name: Python ${{ matrix.python-version }} ${{ matrix.pip-group }}
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_GROUP='${{ matrix.pip-group }}'
- run: make lint
4 changes: 4 additions & 0 deletions Makefile
Original file line number Diff line number Diff line change
@@ -1,7 +1,11 @@
venv: pyproject.toml poetry.lock venv-tools
rm -rf venv
python3 -m venv venv
ifneq (${PIP_GROUP},)
VIRTUAL_ENV=venv venv-tools/bin/poetry install --with ${PIP_GROUP}
else
VIRTUAL_ENV=venv venv-tools/bin/poetry install
endif

venv-tools: requirements.tools.txt
rm -rf venv-tools
Expand Down
23 changes: 14 additions & 9 deletions flareio/api_client.py
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
4 changes: 4 additions & 0 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,10 @@ build-backend = "poetry.core.masonry.api"
[tool.poetry.group.dev.dependencies]
pytest = "8.3.2"

[tool.poetry.group.urllib3_1.dependencies]
urllib3 = "<2"
requests = "<=2.30"

[tool.ruff.lint]
extend-select = [
"I",
Expand Down

0 comments on commit 2c326ed

Please sign in to comment.