diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 8a45fd3d..5bea4225 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -30,3 +30,20 @@ jobs: env: MPLBACKEND: Agg run: uv run --python ${{ matrix.python-version }} --extra dev pytest + + # Make sure the lower bounds of the direct dependencies are actually usable + test-minimum: + name: Minimum dependency versions + runs-on: ubuntu-latest + timeout-minutes: 45 + steps: + - uses: actions/checkout@v7 + - uses: astral-sh/setup-uv@v10.2.0 + - name: Install Python 3.11 + run: uv python install 3.11 + - name: Install libsndfile + run: sudo apt-get install -y libsndfile1 + - name: Run tests + env: + MPLBACKEND: Agg + run: uv run --python 3.11 --resolution lowest-direct --extra dev pytest diff --git a/docs/changes.rst b/docs/changes.rst index cf2f716f..c1003495 100644 --- a/docs/changes.rst +++ b/docs/changes.rst @@ -5,6 +5,15 @@ This page lists recent changes in the `wfdb` package (since version 4.0.0) that .. _development repository: https://github.com/MIT-LCP/wfdb-python +Unreleased +---------- + +**Drop support for Python 3.9 and 3.10** + The minimum supported Python version is now 3.11. The package is now also tested with Python 3.14 and 3.15. + +**Raise minimum versions of dependencies** + The minimum versions of ``soundfile`` (0.12.1), ``matplotlib`` (3.8.0) and ``requests`` (2.31.0) have been raised. The minimum versions of the other dependencies are unchanged. + Version 4.3.1 (Feb 2026) ----------------------------- diff --git a/pyproject.toml b/pyproject.toml index bd5f10c7..43b24914 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -8,14 +8,14 @@ description = "The WFDB Python package: tools for reading, writing, and processi authors = [{name = "The Laboratory for Computational Physiology", email = "contact@physionet.org"}] license = {text = "MIT License"} readme = "README.md" -requires-python = ">= 3.9" +requires-python = ">= 3.11" dependencies = [ "numpy >= 1.26.4", "scipy >= 1.13.0", "pandas >= 2.2.3", - "soundfile >= 0.10.0", - "matplotlib >= 3.2.2", - "requests >= 2.8.1", + "soundfile >= 0.12.1", + "matplotlib >= 3.8.0", + "requests >= 2.31.0", "fsspec >= 2023.10.0", "aiohttp >= 3.10.11", ] @@ -23,8 +23,8 @@ dynamic = ["version"] [project.optional-dependencies] dev = [ - "pytest >= 7.1.1", - "pytest-xdist >= 2.5.0", + "pytest >= 8.0.0", + "pytest-xdist >= 3.5.0", "pylint >= 2.13.7", "black >= 22.3.0", "sphinx >= 7.0.0", @@ -37,7 +37,7 @@ documentation = "https://wfdb.readthedocs.io/" [tool.black] line-length = 80 -target-version = ["py39"] +target-version = ["py311"] [tool.hatch.build.targets.sdist] exclude = [