From 0601f10c059828b86622be1525f2702f73827034 Mon Sep 17 00:00:00 2001 From: Remis Date: Wed, 2 Sep 2026 10:56:06 +0100 Subject: [PATCH] Lower the Python floor to 3.10 The >=3.11 came from the initial commit and was never earned: dcio uses no 3.11 syntax and no 3.11 stdlib -- no tomllib, no typing.Self, no exception groups, nothing. It became a real constraint when SCALCS took dcio as a dependency. SCALCS supports 3.10, so pip could not resolve the requirement there at all, and its linux-py310 job failed outright. The alternatives were to drop 3.10 from SCALCS to satisfy a floor that was not required, or to keep two copies of burst segmentation. Neither is worth it. CI now covers 3.10 through 3.13, and the oldest-deps job pins 3.10 as well, so the floor is a tested fact rather than an assertion -- which is the same reason that job exists for numpy. EKDIST's >=3.11 was inherited from this one and can come down too. Co-Authored-By: Claude Opus 5 --- .github/workflows/ci.yml | 7 +++++-- pyproject.toml | 5 +++-- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 1e3e5da..166dad2 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -33,7 +33,10 @@ jobs: fail-fast: false matrix: include: - # requires-python is >=3.11; every version in that range is tested. + # requires-python is >=3.10; every version in that range is tested. + # 3.10 is the floor because SCALCS supports it, and dcio uses no + # 3.11 syntax or stdlib -- the original >=3.11 was never earned. + - { name: linux-py310, os: ubuntu-24.04, python: '3.10' } - { name: linux-py311, os: ubuntu-24.04, python: '3.11' } - { name: linux-py312, os: ubuntu-24.04, python: '3.12' } - { name: linux-py313, os: ubuntu-24.04, python: '3.13', coverage: true } @@ -96,7 +99,7 @@ jobs: - uses: actions/setup-python@v6 with: - python-version: '3.11' + python-version: '3.10' - name: Install with the declared minimum numpy run: | diff --git a/pyproject.toml b/pyproject.toml index 943ef67..6d5374c 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,13 +4,13 @@ build-backend = "setuptools.build_meta" [project] name = "dcio" -version = "0.1.0" +version = "0.1.1" description = "I/O and record layer for electrophysiology file formats used by the DCPROGS suite" readme = "README.md" license = "MIT" license-files = ["LICENSE"] authors = [{ name = "Remis Lape" }] -requires-python = ">=3.11" +requires-python = ">=3.10" dependencies = ["numpy>=2.0"] keywords = [ "electrophysiology", @@ -25,6 +25,7 @@ classifiers = [ "Intended Audience :: Science/Research", "Topic :: Scientific/Engineering :: Bio-Informatics", "Programming Language :: Python :: 3", + "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13",