From 99cb555af0fd76d5ff3c35862e8b8391a3db65ac Mon Sep 17 00:00:00 2001 From: Matt Stone Date: Wed, 20 May 2026 16:09:07 -0400 Subject: [PATCH] Drop support for Python 3.9; start supporting Python 3.14 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Raise requires-python to >=3.10 and update tox, CI matrix, and changelog accordingly. Remove the fcntl.F_SETPIPE_SZ compatibility shim that monkey-patched the constant on Linux for CPython <=3.9 where it was missing. Dead code now that Python >=3.10 is required. PyPy is temporarily dropped from the CI matrix. isal 1.8.0 and zlib-ng 1.0.0 stopped publishing PyPy wheels because cibuildwheel 3.0 made PyPy opt-in by default and both projects install cibuildwheel unpinned. Restore once upstream wheels return — see pycompression/python-isal#245 and pycompression/python-zlib-ng#78. Co-Authored-By: Claude Opus 4.7 (1M context) --- .github/workflows/ci.yml | 4 +++- README.rst | 4 ++-- pyproject.toml | 2 +- src/xopen/__init__.py | 6 ------ tox.ini | 2 +- 5 files changed, 7 insertions(+), 11 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index ff4788b..f9f454e 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -34,7 +34,9 @@ jobs: strategy: matrix: os: [ubuntu-latest] - python-version: ["3.9", "3.10", "3.11", "3.12", "3.13", "pypy-3.9"] + # TODO: restore "pypy-3.11" once isal and zlib-ng ship PyPy wheels again + # (pycompression/python-isal#245, pycompression/python-zlib-ng#78). + python-version: ["3.10", "3.11", "3.12", "3.13", "3.14"] optional-deps: [true] with-libs: [true] include: diff --git a/README.rst b/README.rst index 2e5c268..2452a03 100644 --- a/README.rst +++ b/README.rst @@ -185,8 +185,8 @@ Changelog development version ~~~~~~~~~~~~~~~~~~~ -* Dropped support for Python 3.8 -* Started supporting Python 3.13 +* Dropped support for Python 3.8 and 3.9 +* Started supporting Python 3.13 and 3.14 v2.0.2 (2024-06-12) ~~~~~~~~~~~~~~~~~~~ diff --git a/pyproject.toml b/pyproject.toml index c0f5bc2..114e802 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -15,7 +15,7 @@ classifiers = [ "Development Status :: 5 - Production/Stable", "Programming Language :: Python :: 3" ] -requires-python = ">=3.9" +requires-python = ">=3.10" dynamic = ["version"] dependencies = [ 'isal>=1.6.1; platform.machine == "x86_64" or platform.machine == "AMD64" or platform.machine == "aarch64"', diff --git a/src/xopen/__init__.py b/src/xopen/__init__.py index 89f5137..1348ea9 100644 --- a/src/xopen/__init__.py +++ b/src/xopen/__init__.py @@ -72,12 +72,6 @@ try: import fcntl - - # fcntl.F_SETPIPE_SZ will be available in python 3.10. - # https://github.com/python/cpython/pull/21921 - # If not available: set it to the correct value for known platforms. - if not hasattr(fcntl, "F_SETPIPE_SZ") and sys.platform == "linux": - setattr(fcntl, "F_SETPIPE_SZ", 1031) except ImportError: fcntl = None # type: ignore diff --git a/tox.ini b/tox.ini index f1ef44a..da3c28c 100644 --- a/tox.ini +++ b/tox.ini @@ -1,5 +1,5 @@ [tox] -envlist = black,flake8,mypy,py39,py310,py311,py312,py313,pypy3 +envlist = black,flake8,mypy,py310,py311,py312,py313,py314,pypy3 isolated_build = True [testenv]