From f57be4b3e4907c529d2c4d6d3fac90161f96d3f3 Mon Sep 17 00:00:00 2001 From: yuli Date: Tue, 25 Aug 2026 10:53:35 +0300 Subject: [PATCH] Update Python dependencies and raise floor to 3.10 Every current release of our dependencies now requires Python >= 3.10: requests 2.34.2, urllib3 2.7.0, pytest 9.1.1, black 26.5.1, isort 8.0.1, mypy 2.3.1 and types-requests all dropped 3.9. Python 3.9 reached EOL in October 2025, so staying below 3.10 would mean pinning the whole toolchain to releases that no longer receive upstream fixes -- including the two packages requirements.txt pins specifically for CVE remediation. Raise python_requires from >=3.7 to >=3.10 and take the latest of everything. The 3.7/3.8/3.9 classifiers were already stale: the package has imported typing.TypedDict (3.8+) for a while, and CI only ever tested 3.9 and 3.10, so the declared floor was never actually exercised. Existing users on old interpreters stay on 0.1.7 -- pip reads python_requires and will not offer them this release. CI now tests 3.10 through 3.13 instead of just 3.9 and 3.10, and the lint and deploy jobs move to 3.13. Also bump the setuptools build floor to 77. Bump the version to 0.1.8 in the same commit: the deploy job uploads with --skip-existing, so leaving it at 0.1.7 would make the publish step a silent no-op and none of this would reach PyPI. Verified in a clean venv: black, isort and mypy are clean, and the full suite passes against the live API (38 tests, 114 subtests). Co-Authored-By: Claude --- .github/workflows/ci.yml | 6 +++--- databunkerpro/__init__.py | 2 +- pyproject.toml | 6 +++--- requirements.txt | 4 ++-- setup.py | 24 ++++++++++++------------ 5 files changed, 21 insertions(+), 21 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index ff6bf20..6520956 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -12,7 +12,7 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - python-version: [3.9, '3.10'] + python-version: ['3.10', '3.11', '3.12', '3.13'] steps: - uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262 # v4.4.0 @@ -43,7 +43,7 @@ jobs: - name: Set up Python uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5.6.0 with: - python-version: '3.10' + python-version: '3.13' - name: Install dependencies run: | @@ -69,7 +69,7 @@ jobs: - name: Set up Python uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5.6.0 with: - python-version: '3.10' + python-version: '3.13' - name: Install dependencies run: | diff --git a/databunkerpro/__init__.py b/databunkerpro/__init__.py index 3b8614d..5e54426 100644 --- a/databunkerpro/__init__.py +++ b/databunkerpro/__init__.py @@ -5,5 +5,5 @@ from .api import DatabunkerproAPI -__version__ = "0.1.7" +__version__ = "0.1.8" __all__ = ["DatabunkerproAPI"] diff --git a/pyproject.toml b/pyproject.toml index f432034..ef7e929 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,10 +1,10 @@ [build-system] -requires = ["setuptools>=42", "wheel"] +requires = ["setuptools>=77", "wheel"] build-backend = "setuptools.build_meta" [tool.black] line-length = 88 -target-version = ['py37', 'py38', 'py39', 'py310'] +target-version = ['py310', 'py311', 'py312', 'py313'] include = '\.pyi?$' [tool.isort] @@ -16,7 +16,7 @@ use_parentheses = true line_length = 88 [tool.mypy] -python_version = "3.9" +python_version = "3.10" warn_return_any = true warn_unused_configs = true disallow_untyped_defs = true diff --git a/requirements.txt b/requirements.txt index f24b735..3c3cc05 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,3 +1,3 @@ databunkerpro -requests>=2.32.4 # not directly required, pinned by Snyk to avoid a vulnerability -urllib3>=2.5.0 # not directly required, pinned by Snyk to avoid a vulnerability +requests>=2.34.2 # not directly required, pinned by Snyk to avoid a vulnerability +urllib3>=2.7.0 # not directly required, pinned by Snyk to avoid a vulnerability diff --git a/setup.py b/setup.py index 028d9b2..405fda1 100644 --- a/setup.py +++ b/setup.py @@ -5,7 +5,7 @@ setup( name="databunkerpro", - version="0.1.7", + version="0.1.8", author="Databunker team", author_email="hello@databunker.org", description="Python client library for DatabunkerPro API", @@ -19,23 +19,23 @@ "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python :: 3", - "Programming Language :: Python :: 3.7", - "Programming Language :: Python :: 3.8", - "Programming Language :: Python :: 3.9", "Programming Language :: Python :: 3.10", + "Programming Language :: Python :: 3.11", + "Programming Language :: Python :: 3.12", + "Programming Language :: Python :: 3.13", ], - python_requires=">=3.7", + python_requires=">=3.10", install_requires=[ - "requests>=2.32.4", + "requests>=2.34.2", ], extras_require={ "dev": [ - "pytest>=6.0", - "pytest-cov>=2.0", - "black>=21.0", - "isort>=5.0", - "mypy>=0.910", - "types-requests", + "pytest>=9.1.1", + "pytest-cov>=7.1.0", + "black>=26.5.1", + "isort>=8.0.1", + "mypy>=2.3.1", + "types-requests>=2.33.0.20260712", ], }, )