From 45e9d0c496c85c0d8fea14a75ad365fd41a51bfa Mon Sep 17 00:00:00 2001 From: Ben Copeland Date: Mon, 20 Jul 2026 13:21:10 +0100 Subject: [PATCH 1/2] deps: allow modern numpy on python 3.11 and newer The python ^3.10 floor resolves numpy to 2.2.6, the last release supporting 3.10, which ships no python 3.14 wheels and fails to build from source. Declare numpy with per-python constraints so 3.11 and newer resolve to numpy >=2.3, which provides 3.14 wheels, while 3.10 keeps the current version. Signed-off-by: Ben Copeland --- pyproject.toml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/pyproject.toml b/pyproject.toml index 158fcd6a..6add0653 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -36,6 +36,11 @@ pyyaml = "^6.0.2" tabulate = "0.9.0" matplotlib = ">=3.6" mplcursors = ">=0.6" +# matplotlib dependency; releases with python 3.14 wheels need python >=3.11 +numpy = [ + { version = "<2.3", python = "<3.11" }, + { version = ">=2.3", python = ">=3.11" }, +] mcp = { version = "^1.9", optional = true } [tool.poetry.extras] From 6992d27b80daf8c3730cc10cb25c3ff7b9d3d72a Mon Sep 17 00:00:00 2001 From: Ben Copeland Date: Mon, 20 Jul 2026 13:22:06 +0100 Subject: [PATCH 2/2] ci: test and declare python 3.14 support Signed-off-by: Ben Copeland --- .github/workflows/poetry.yml | 2 +- pyproject.toml | 1 + tox.ini | 2 +- 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/.github/workflows/poetry.yml b/.github/workflows/poetry.yml index 5c899d91..e3de9428 100644 --- a/.github/workflows/poetry.yml +++ b/.github/workflows/poetry.yml @@ -7,7 +7,7 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - python-version: ["3.12", "3.13"] + python-version: ["3.12", "3.13", "3.14"] steps: - uses: actions/checkout@v4 - name: Install Python ${{ matrix.python-version }} diff --git a/pyproject.toml b/pyproject.toml index 6add0653..5b4f2b6a 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -22,6 +22,7 @@ classifiers = [ 'Programming Language :: Python :: 3', 'Programming Language :: Python :: 3.12', 'Programming Language :: Python :: 3.13', + 'Programming Language :: Python :: 3.14', 'Programming Language :: Python :: Implementation :: CPython', 'Programming Language :: Python :: Implementation :: PyPy' ] diff --git a/tox.ini b/tox.ini index aa7856d8..7e76fef7 100644 --- a/tox.ini +++ b/tox.ini @@ -1,5 +1,5 @@ [tox] -env_list = py312,py313 +env_list = py312,py313,py314 skip_missing_interpreters = true [testenv]