From 0ed0f57dbb0e631f903d8f0873c58732013c94e7 Mon Sep 17 00:00:00 2001 From: Benjamin Mako Hill Date: Thu, 6 Aug 2026 16:17:14 -0700 Subject: [PATCH] require Python 3.11 Python 3.9 reached end of life in October 2025, and 3.11 is where the current ecosystem sits: it unlocks pyarrow 25 (we were held at 21, the last release supporting 3.9), more-itertools 11, and pandas 3 for the test suite, along with the large CPython 3.11 interpreter speedups on exactly the kind of CPU-bound work wikiq does. Nothing in the code needed changes. Raising the floor exposed that PyPI's yamlconf 0.2.6 (a transitive dependency via deltas) pins pyyaml == 5.4.1, which has no wheels for 3.11+ and no longer builds from source under current setuptools. Add a PEP 508 reference to the fork that loosens the pin; it can be dropped when https://github.com/halfak/yamlconf/pull/10 is merged and released. Co-Authored-By: Claude Fable 5 --- .python-version | 2 +- pyproject.toml | 6 +++++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/.python-version b/.python-version index bd28b9c..2c07333 100644 --- a/.python-version +++ b/.python-version @@ -1 +1 @@ -3.9 +3.11 diff --git a/pyproject.toml b/pyproject.toml index d9e9c20..e0f22c6 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -3,7 +3,7 @@ name = "mediawiki-dump-tools" version = "0.1.1" description = "Add your description here" readme = "README.md" -requires-python = ">=3.9" +requires-python = ">=3.11" dependencies = [ "deltas>=0.7.0", "mediawiki-utilities>=0.4.18", @@ -16,6 +16,10 @@ dependencies = [ "pyarrow>=20.0.0", "pywikidiff2 @ git+https://gitea.communitydata.science/groceryheist/pywikidiff2.git", "sortedcontainers>=2.4.0", + # PyPI yamlconf 0.2.6 pins pyyaml == 5.4.1, which cannot build on + # Python >= 3.11; this fork loosens the pin. Drop once upstream + # releases with a fixed requirement. + "yamlconf @ git+https://github.com/groceryheist/yamlconf", ] [project.scripts]