diff --git a/doc/changes/dev/13814.dependency.rst b/doc/changes/dev/13814.dependency.rst new file mode 100644 index 00000000000..0466f724fb7 --- /dev/null +++ b/doc/changes/dev/13814.dependency.rst @@ -0,0 +1,5 @@ +Updated minimum for: + +- Core dependency ``scipy >= 1.13`` + +Changed implemented via CI action created by `Thomas Binns`_. diff --git a/environment.yml b/environment.yml index d6e573c8372..4bc85279dc8 100644 --- a/environment.yml +++ b/environment.yml @@ -51,7 +51,7 @@ dependencies: - qdarkstyle !=3.2.2 - qtpy - scikit-learn >=1.4 - - scipy >=1.12 + - scipy >=1.13 - sip - snirf - statsmodels >=0.6 diff --git a/mne/tests/test_chpi.py b/mne/tests/test_chpi.py index dbebeeb2eca..925ad14018a 100644 --- a/mne/tests/test_chpi.py +++ b/mne/tests/test_chpi.py @@ -885,9 +885,11 @@ def assert_slopes_correlated(actual_meas, desired_meas, *, lim=(0.99, 1.0)): @testing.requires_testing_data def test_refit_hpi_locs_basic(): """Test that HPI locations can be refit.""" - if not check_version("scipy", "1.13"): - # TODO VERSION remove when scipy >= 1.13 is required - pytest.xfail("SciPy 1.12 has an lwork bug affecting this test") + if not check_version("scipy", "1.14"): + # TODO VERSION remove when scipy >= 1.14 is required (gh mne-python #13814) + # Test fails on "old" job with SciPy 1.12 and 1.13. Will need to see after + # 2026-06-24 whether bumping min SciPy version to 1.14 fixes this. + pytest.xfail("SciPy 1.13 has an lwork bug affecting this test") raw = read_raw_fif(chpi_fif_fname, allow_maxshield="yes").crop(0, 2).load_data() # These should be similar (and both should work) locs = compute_chpi_amplitudes(raw, t_step_min=2, t_window=1) diff --git a/mne/viz/backends/_pyvista.py b/mne/viz/backends/_pyvista.py index b24084e60f5..a5bef386502 100644 --- a/mne/viz/backends/_pyvista.py +++ b/mne/viz/backends/_pyvista.py @@ -213,7 +213,7 @@ def __init__( from .._3d import _get_3d_option # TODO VERSION change whenever PyVista min gets updated: - _require_version("pyvista", "use 3D rendering", "0.42") + _require_version("pyvista", "use 3D rendering", "0.43") multi_samples = _get_3d_option("multi_samples") # multi_samples > 1 is broken on macOS + Intel Iris + volume rendering if platform.system() == "Darwin": diff --git a/mne/viz/tests/test_raw.py b/mne/viz/tests/test_raw.py index 53f7d82e214..5691f1fdc9e 100644 --- a/mne/viz/tests/test_raw.py +++ b/mne/viz/tests/test_raw.py @@ -347,9 +347,6 @@ def test_scale_bar(browser_backend): def test_plot_raw_selection(raw, browser_backend): """Test selection mode of plot_raw().""" ismpl = browser_backend.name == "matplotlib" - if ismpl and os.getenv("MNE_CI_KIND") == "pip-pre": - # TODO VERSION FIX SOON AFTER 2026/01/26! - pytest.xfail("Needs mpl gh-31031") with raw.info._unlock(): raw.info["lowpass"] = 10.0 # allow heavy decim during plotting browser_backend._close_all() # ensure all are closed @@ -794,9 +791,6 @@ def test_plot_misc_auto(browser_backend): def test_plot_annotations(raw, browser_backend): """Test annotation mode of the plotter.""" ismpl = browser_backend.name == "matplotlib" - if ismpl and os.getenv("MNE_CI_KIND") == "pip-pre": - # TODO VERSION FIX SOON AFTER 2026/01/26! - pytest.xfail("Needs mpl gh-31031") with raw.info._unlock(): raw.info["lowpass"] = 10.0 _annotation_helper(raw, browser_backend) diff --git a/pyproject.toml b/pyproject.toml index d9ec1bbcefa..81093d74258 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -106,7 +106,7 @@ dependencies = [ "numpy >= 1.26, < 3", # released 2023-09-16, will become 2.0 on 2026-06-16 "packaging", "pooch >= 1.5", - "scipy >= 1.12", # released 2024-01-20, will become 1.13 on 2026-04-02 + "scipy >= 1.13", # released 2024-04-02, will become 1.14 on 2026-06-24 "tqdm >= 4.66", ] description = "MNE-Python project for MEG and EEG data analysis." diff --git a/tools/pylock.ci-old.toml b/tools/pylock.ci-old.toml index 573e16cde45..8876d93ba74 100644 --- a/tools/pylock.ci-old.toml +++ b/tools/pylock.ci-old.toml @@ -67,12 +67,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/0a/4c/925909008ed5a988ccbb72dcc897407e5d6d3bd72410d69e051fc0c14647/charset_normalizer-3.4.4-py3-none-any.whl", upload-time = 2025-10-14T04:42:31Z, size = 53402, hashes = { sha256 = "7a32c560861a02ff789ad905a2fe94e3f840803362c84fecf1851cb4cf3dc37f" } }, ] -[[packages]] -name = "click" -version = "7.1.2" -sdist = { url = "https://files.pythonhosted.org/packages/27/6f/be940c8b1f1d69daceeb0032fee6c34d7bd70e3e649ccac0951500b4720e/click-7.1.2.tar.gz", upload-time = 2020-04-27T20:22:45Z, size = 297279, hashes = { sha256 = "d2b5255c7c6349bc1bd1e59e08cd12acbbd63ce649f2588755783aa94dfb6b1a" } } -wheels = [{ url = "https://files.pythonhosted.org/packages/d2/3d/fa76db83bf75c4f8d338c2fd15c8d33fdd7ad23a9b5e57eb6c5de26b430e/click-7.1.2-py2.py3-none-any.whl", upload-time = 2020-04-27T20:22:42Z, size = 82780, hashes = { sha256 = "dacca89f4bfadd5de3d7489b7c8a566eee0d3676333fbb50030263894c38c0dc" } }] - [[packages]] name = "codespell" version = "1.9.0" @@ -463,9 +457,9 @@ wheels = [ [[packages]] name = "scipy" -version = "1.12.0" -sdist = { url = "https://files.pythonhosted.org/packages/30/85/cdbf2c3c460fe5aae812917866392068a88d02f07de0fe31ce738734c477/scipy-1.12.0.tar.gz", upload-time = 2024-01-20T21:13:43Z, size = 56811768, hashes = { sha256 = "4bf5abab8a36d20193c698b0f1fc282c1d083c94723902c447e5d2f1780936a3" } } -wheels = [{ url = "https://files.pythonhosted.org/packages/f5/aa/8e6071a5e4dca4ec68b5b22e4991ee74c59c5d372112b9c236ec1faff57d/scipy-1.12.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", upload-time = 2024-01-20T21:10:51Z, size = 38441046, hashes = { sha256 = "5e32847e08da8d895ce09d108a494d9eb78974cf6de23063f93306a3e419960c" } }] +version = "1.13.0" +sdist = { url = "https://files.pythonhosted.org/packages/fb/a3/328965862f41ba67d27ddd26205962007ec87d99eec6d364a29bf00ac093/scipy-1.13.0.tar.gz", upload-time = 2024-04-02T21:48:22Z, size = 57204550, hashes = { sha256 = "58569af537ea29d3f78e5abd18398459f195546bb3be23d16677fb26616cc11e" } } +wheels = [{ url = "https://files.pythonhosted.org/packages/b9/9d/39dbcf49a793157f9d4f5b8961855677eb4dbb4b82700dcee7042ad2310c/scipy-1.13.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", upload-time = 2024-04-02T21:41:39Z, size = 38568731, hashes = { sha256 = "b8434f6f3fa49f631fae84afee424e2483289dfc30a47755b4b4e6b07b2633a4" } }] [[packages]] name = "setuptools" @@ -565,12 +559,6 @@ version = "3.6.0" sdist = { url = "https://files.pythonhosted.org/packages/b7/4d/08c89e34946fce2aec4fbb45c9016efd5f4d7f24af8e5d93296e935631d8/threadpoolctl-3.6.0.tar.gz", upload-time = 2025-03-13T13:49:23Z, size = 21274, hashes = { sha256 = "8ab8b4aa3491d812b623328249fab5302a68d2d71745c8a4c719a2fcaba9f44e" } } wheels = [{ url = "https://files.pythonhosted.org/packages/32/d5/f9a850d79b0851d1d4ef6456097579a9005b31fea68726a4ae5f2d82ddd9/threadpoolctl-3.6.0-py3-none-any.whl", upload-time = 2025-03-13T13:49:21Z, size = 18638, hashes = { sha256 = "43a0b8fd5a2928500110039e43a5eed8480b918967083ea48dc3ab9f13c4a7fb" } }] -[[packages]] -name = "toml-sort" -version = "0.1.0" -sdist = { url = "https://files.pythonhosted.org/packages/d7/5b/a4d60a2adab82336d02ebf806630e0a4cfa38b776fa859e054bd9f11e1e4/toml-sort-0.1.0.tar.gz", upload-time = 2019-08-05T13:16:50Z, size = 3553, hashes = { sha256 = "a55d69a2925da3263bfe6ec1d2adf1e49db0cb75af34327f4a7e1d8239f9940d" } } -wheels = [{ url = "https://files.pythonhosted.org/packages/b8/9e/20a166e038a0dc818c51e3757a5c2b6850305fe9a8e6b23514979aa5832e/toml_sort-0.1.0-py3-none-any.whl", upload-time = 2019-08-05T13:16:52Z, size = 4364, hashes = { sha256 = "6f675963139c1ec4cf53b2f41874e949ad04c92b3a53ac01b39c3da67839f548" } }] - [[packages]] name = "tomli" version = "1.1.0" @@ -578,12 +566,6 @@ marker = "python_full_version <= '3.11'" sdist = { url = "https://files.pythonhosted.org/packages/6c/16/f48ab3289015f8f90e2c68fb76531728b3d8e4ce5052ee80ad10e7707eda/tomli-1.1.0.tar.gz", upload-time = 2021-07-23T09:47:07Z, size = 12134, hashes = { sha256 = "33d7984738f8bb699c9b0a816eb646a8178a69eaa792d258486776a5d21b8ca5" } } wheels = [{ url = "https://files.pythonhosted.org/packages/2e/ac/75c79a6880ba6b306df9f61fedf802dd7db0c54d42e4a879f1428625c138/tomli-1.1.0-py3-none-any.whl", upload-time = 2021-07-23T09:47:06Z, size = 11712, hashes = { sha256 = "f4a182048010e89cbec0ae4686b21f550a7f2903f665e34a6de58ec15424f919" } }] -[[packages]] -name = "tomlkit" -version = "0.14.0" -sdist = { url = "https://files.pythonhosted.org/packages/c3/af/14b24e41977adb296d6bd1fb59402cf7d60ce364f90c890bd2ec65c43b5a/tomlkit-0.14.0.tar.gz", upload-time = 2026-01-13T01:14:53Z, size = 187167, hashes = { sha256 = "cf00efca415dbd57575befb1f6634c4f42d2d87dbba376128adb42c121b87064" } } -wheels = [{ url = "https://files.pythonhosted.org/packages/b5/11/87d6d29fb5d237229d67973a6c9e06e048f01cf4994dee194ab0ea841814/tomlkit-0.14.0-py3-none-any.whl", upload-time = 2026-01-13T01:14:51Z, size = 39310, hashes = { sha256 = "592064ed85b40fa213469f81ac584f67a4f2992509a7c3ea2d632208623a3680" } }] - [[packages]] name = "tqdm" version = "4.66.0"