Skip to content

Commit baa52dd

Browse files
Jammy2211Jammy2211claude
authored
feat(python-version): support Python 3.9-3.14, first-class 3.12/3.13 (#293)
* feat(python-version): support Python 3.9-3.14, first-class 3.12/3.13 Wide-support / narrow-first-class model for Python versions across the PyAuto family. Python 3.12 and 3.13 remain the recommended versions. 3.9, 3.10, 3.11, 3.14 install cleanly but emit a loud bypassable warning at import time. JAX moved to optional [jax] extra gated on python_version >= '3.11' (so 3.9/3.10 users get numpy-only mode without install failures). Coordinated change across PyAutoConf, PyAutoArray, PyAutoFit, PyAutoGalaxy, PyAutoLens, PyAutoBuild, and the 6 workspace repos. See sibling PRs on the feature/python-version-policy branch in each repo. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * ci: narrow per-PR matrix to 3.12/3.13; install [optional] uniformly Per-PR CI now tests only the first-class Python versions (3.12, 3.13). Wide-span 3.9-3.14 verification moves to PyAutoBuild's python_matrix.yml workflow (weekly + on-demand). Install commands now always use the [optional] extra so JAX is available on both 3.12 and 3.13 (the conftest.py eager `import jax` was failing on 3.13 because the previous CI only added [optional] for 3.12). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Jammy2211 <JNightingale2211@gmail.com> Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
1 parent 229e5f9 commit baa52dd

2 files changed

Lines changed: 10 additions & 9 deletions

File tree

.github/workflows/main.yml

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -37,12 +37,7 @@ jobs:
3737
pip3 install setuptools
3838
pip3 install wheel
3939
pip3 install pytest coverage pytest-cov
40-
pip install ./PyAutoConf ./PyAutoArray
41-
if [ "${{ matrix.python-version }}" = "3.12" ]; then
42-
pip install "./PyAutoArray[optional]"
43-
else
44-
pip install numba pynufft
45-
fi
40+
pip install ./PyAutoConf "./PyAutoArray[optional]"
4641
4742
- name: Extract branch name
4843
shell: bash

pyproject.toml

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ dynamic = ["version"]
88
description="PyAuto Data Structures"
99
readme = { file = "README.rst", content-type = "text/x-rst" }
1010
license = { text = "MIT" }
11-
requires-python = ">=3.12"
11+
requires-python = ">=3.9"
1212
authors = [
1313
{ name = "James Nightingale", email = "James.Nightingale@newcastle.ac.uk" },
1414
{ name = "Richard Hayes", email = "richard@rghsoftware.co.uk" },
@@ -18,8 +18,12 @@ classifiers = [
1818
"Topic :: Scientific/Engineering :: Physics",
1919
"Natural Language :: English",
2020
"Operating System :: OS Independent",
21+
"Programming Language :: Python :: 3.9",
22+
"Programming Language :: Python :: 3.10",
23+
"Programming Language :: Python :: 3.11",
2124
"Programming Language :: Python :: 3.12",
22-
"Programming Language :: Python :: 3.13"
25+
"Programming Language :: Python :: 3.13",
26+
"Programming Language :: Python :: 3.14"
2327
]
2428
keywords = ["cli"]
2529
dependencies = [
@@ -49,7 +53,9 @@ local_scheme = "no-local-version"
4953

5054

5155
[project.optional-dependencies]
52-
optional=[
56+
jax = ["autoconf[jax]"]
57+
optional = [
58+
"autoarray[jax]",
5359
"numba",
5460
"pynufft",
5561
"tensorflow-probability==0.25.0"

0 commit comments

Comments
 (0)