Added free-threaded non-GIL Python and PyPy wheels, up to 3.15 now.

This commit is contained in:
2025-12-31 21:24:56 +00:00
parent d7acf7a315
commit 4977a7e79d
+21 -14
View File
@@ -7,22 +7,24 @@ import subprocess
import sys import sys
from pathlib import Path from pathlib import Path
import tomllib
from packaging.specifiers import SpecifierSet
from packaging.version import Version from packaging.version import Version
# Import generate module from same directory # Import generate module from same directory
sys.path.insert(0, str(Path(__file__).parent)) sys.path.insert(0, str(Path(__file__).parent))
import generate import generate
PYTHON_VERSIONS = [
def get_python_versions(): "3.10",
"""Get supported Python versions.""" "3.11",
pyproject_toml = Path(__file__).parent.parent / "pyproject.toml" "3.12",
data = tomllib.loads(pyproject_toml.read_text(encoding="utf-8")) "3.13",
spec = SpecifierSet(data["project"]["requires-python"]) "3.14",
# Generate versions that match the specifier (up to Python 3.14) "3.14t",
return [f"3.{minor}" for minor in range(10, 15) if f"3.{minor}" in spec] "3.15",
"3.15t",
"pypy3.10",
"pypy3.11",
]
def get_version_from_scm(): def get_version_from_scm():
@@ -92,9 +94,6 @@ def make_release_message(version):
return msg return msg
PYTHON_VERSIONS = get_python_versions()
def run_command(cmd, description): def run_command(cmd, description):
"""Run a command and handle errors.""" """Run a command and handle errors."""
print(f"\n{'=' * 70}") print(f"\n{'=' * 70}")
@@ -204,7 +203,15 @@ def main():
continue continue
# Find the wheel for this version # Find the wheel for this version
wheel_pattern = f"aeg-*-cp{py_version.replace('.', '')}-*.whl" if py_version.startswith("pypy"):
# PyPy wheels use pp3XX format
wheel_pattern = (
f"aeg-*-pp{py_version.replace('pypy', '').replace('.', '')}-*.whl"
)
else:
wheel_pattern = (
f"aeg-*-cp{py_version.replace('.', '').replace('t', '')}-*.whl"
)
wheels = list(dist_dir.glob(wheel_pattern)) wheels = list(dist_dir.glob(wheel_pattern))
if not wheels: if not wheels:
print(f"✗ Could not find wheel for Python {py_version}", file=sys.stderr) print(f"✗ Could not find wheel for Python {py_version}", file=sys.stderr)