From 632e24d62e085a966cffab2141c4a3657976c561 Mon Sep 17 00:00:00 2001 From: cmp0xff Date: Sun, 19 Oct 2025 22:51:40 +0200 Subject: [PATCH 1/4] test in py314 --- .github/workflows/test.yml | 2 +- pyproject.toml | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 8fc7aab93..4c89df3f6 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -19,7 +19,7 @@ jobs: matrix: # macos-latest is arm os: [ubuntu-latest, windows-latest, macos-latest] - python-version: ["3.10", "3.11", "3.12", "3.13"] + python-version: ["3.10", "3.11", "3.12", "3.13", "3.14"] name: OS ${{ matrix.os }} - Python ${{ matrix.python-version }} diff --git a/pyproject.toml b/pyproject.toml index f1223bc0b..eb8f78103 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -20,6 +20,7 @@ classifiers = [ "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", + "Programming Language :: Python :: 3.14", "Topic :: Scientific/Engineering", "Typing :: Stubs Only", ] From eb9cc7a89d5de5e962a6c2adfa81c0189050ccfc Mon Sep 17 00:00:00 2001 From: cmp0xff Date: Fri, 24 Oct 2025 15:54:03 +0200 Subject: [PATCH 2/4] drop tables --- pyproject.toml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index eb8f78103..126050a06 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -34,7 +34,7 @@ exclude = [ "pandas-stubs/__init__.py" ] [tool.poetry.dependencies] python = ">=3.10" types-pytz = ">= 2022.1.1" -numpy = ">= 1.23.5" +numpy = ">=1.23.5" [tool.poetry.group.dev.dependencies] mypy = ">=1.18.2" @@ -52,7 +52,7 @@ pre-commit = ">=2.19.0" black = ">=25.9.0" isort = ">=6.0.1" openpyxl = ">=3.0.10" -tables = { version = ">=3.10.1", python = "<4" } +numexpr = ">=2.13.1" lxml = ">=4.9.1" pyreadstat = ">=1.2.0" xlrd = ">=2.0.1" @@ -62,7 +62,7 @@ odfpy = ">=1.4.1" xarray = ">=22.6.0" tabulate = ">=0.8.10" jinja2 = ">=3.1" -scipy = { version = ">=1.9.1", python = "<3.14" } +scipy = ">=1.9.1" scipy-stubs = ">=1.15.3.0" SQLAlchemy = ">=2.0.39" types-python-dateutil = ">=2.8.19" From 45f3927d5600552c3f060e5f35ca526a88bd9408 Mon Sep 17 00:00:00 2001 From: cmp0xff Date: Fri, 24 Oct 2025 16:08:24 +0200 Subject: [PATCH 3/4] Roche/pyreadstat#310 skip pyreadstat --- pyproject.toml | 2 +- tests/test_io.py | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 126050a06..74c5c1cad 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -54,7 +54,7 @@ isort = ">=6.0.1" openpyxl = ">=3.0.10" numexpr = ">=2.13.1" lxml = ">=4.9.1" -pyreadstat = ">=1.2.0" +pyreadstat = { version = ">=1.2.0", python = "<3.14" } xlrd = ">=2.0.1" xlsxwriter = ">=3.0.3" pyxlsb = ">=1.0.10" diff --git a/tests/test_io.py b/tests/test_io.py index ff5bb5850..0627dc580 100644 --- a/tests/test_io.py +++ b/tests/test_io.py @@ -6,6 +6,7 @@ import pathlib from pathlib import Path import sqlite3 +import sys from typing import ( TYPE_CHECKING, Any, @@ -427,6 +428,7 @@ def test_hdf_series() -> None: check(assert_type(read_hdf(path, "s"), DataFrame | Series), Series) +@pytest.mark.xfail(sys.version_info >= (3, 11), reason="pyreadstat 1.3.1 does not support py314 Roche/pyreadstat#310") def test_spss() -> None: path = Path(CWD, "data", "labelled-num.sav") check( From 45f9b3d9940ad29322fbb75766e40fdac0856380 Mon Sep 17 00:00:00 2001 From: cmp0xff Date: Fri, 24 Oct 2025 16:17:54 +0200 Subject: [PATCH 4/4] typo and black --- tests/test_io.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/tests/test_io.py b/tests/test_io.py index 0627dc580..f07a35845 100644 --- a/tests/test_io.py +++ b/tests/test_io.py @@ -428,7 +428,10 @@ def test_hdf_series() -> None: check(assert_type(read_hdf(path, "s"), DataFrame | Series), Series) -@pytest.mark.xfail(sys.version_info >= (3, 11), reason="pyreadstat 1.3.1 does not support py314 Roche/pyreadstat#310") +@pytest.mark.xfail( + sys.version_info >= (3, 14), + reason="pyreadstat 1.3.1 does not support py314 Roche/pyreadstat#310", +) def test_spss() -> None: path = Path(CWD, "data", "labelled-num.sav") check(