diff --git a/.github/workflows/build-wheels.yml b/.github/workflows/build-wheels.yml index 99c9231..05a2b49 100644 --- a/.github/workflows/build-wheels.yml +++ b/.github/workflows/build-wheels.yml @@ -44,7 +44,7 @@ jobs: echo "PKG_CONFIG_PATH=C:/mingw64/lib/pkgconfig" >> $GITHUB_ENV - name: Build wheels - uses: pypa/cibuildwheel@v3.4.1 + uses: pypa/cibuildwheel@v4.3.1 env: # All cibuildwheel options are here (nothing "hidden" in pyproject.toml) CIBW_SKIP: "*-win32 *i686 cp3??t-*" diff --git a/.github/workflows/test-linux.yml b/.github/workflows/test-linux.yml index ed9fe2d..beca64a 100644 --- a/.github/workflows/test-linux.yml +++ b/.github/workflows/test-linux.yml @@ -13,7 +13,7 @@ jobs: strategy: fail-fast: false matrix: - python-version: ["3.10", "3.11", "3.12", "3.13", "3.14"] + python-version: ["3.10", "3.11", "3.12", "3.13", "3.14", "3.15"] resolution: ["lowest-direct", "highest"] exclude: - python-version: "3.12" @@ -21,7 +21,9 @@ jobs: - python-version: "3.13" resolution: "lowest-direct" - python-version: "3.14" - resolution: "lowest-direct" + resolution: "lowest-direct" + - python-version: "3.15" + resolution: "lowest-direct" steps: - name: Checkout code uses: actions/checkout@v5 diff --git a/pyproject.toml b/pyproject.toml index cf88c1c..eb0f4b9 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -23,6 +23,7 @@ classifiers = [ "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", "Programming Language :: Python :: 3.14", + "Programming Language :: Python :: 3.15", "Topic :: Scientific/Engineering", ] @@ -38,7 +39,7 @@ dev = [ "meson-python>=0.18.0", "pytest>=8.4.1", "pytest-cov>=6.2.1", - "scipy>=1.10,<1.17", + "scipy>=1.10,<1.19", "build>=1.5.0", ] docs = [ diff --git a/tests/test_odr_fit.py b/tests/test_odr_fit.py index a56c23a..e26a94c 100644 --- a/tests/test_odr_fit.py +++ b/tests/test_odr_fit.py @@ -3,8 +3,6 @@ import numpy as np import pytest -from scipy.odr import odr as odrscipy -from scipy.optimize import curve_fit from odrpack import OdrStop, odr_fit from odrpack.__odrpack import loc_rwork @@ -677,6 +675,9 @@ def f(x: np.ndarray, beta: np.ndarray) -> np.ndarray: @pytest.mark.xfail(reason="Fails in conda-forge::linux_aarch64") def test_compare_scipy(case1, case2, case3): + odrscipy = pytest.importorskip("scipy.odr").odr + curve_fit = pytest.importorskip("scipy.optimize").curve_fit + # case1 // scipy.optimize.curve_fit sol1 = odr_fit(**case1, task='OLS') sol2 = curve_fit(lambda x, *b: case1['f'](x, np.array(b)),