From 09443c84633a772ea2b5d40a9e5cf88dfc9f324f Mon Sep 17 00:00:00 2001 From: Eric Larson Date: Tue, 3 Feb 2026 12:22:32 -0500 Subject: [PATCH 1/4] BUG: Fix bug with somato dataset paths (#13630) --- doc/changes/dev/13630.bugfix.rst | 1 + examples/inverse/dics_epochs.py | 9 ++++----- mne/datasets/_fetch.py | 4 ++++ mne/datasets/config.py | 4 ++-- 4 files changed, 11 insertions(+), 7 deletions(-) create mode 100644 doc/changes/dev/13630.bugfix.rst diff --git a/doc/changes/dev/13630.bugfix.rst b/doc/changes/dev/13630.bugfix.rst new file mode 100644 index 00000000000..f865dffa9da --- /dev/null +++ b/doc/changes/dev/13630.bugfix.rst @@ -0,0 +1 @@ +Fix bug with :func:`mne.datasets.somato.data_path` where the archive couldn't be extracted due to an absolute path issue, by `Eric Larson`_. \ No newline at end of file diff --git a/examples/inverse/dics_epochs.py b/examples/inverse/dics_epochs.py index c359c30c0fb..1900e3af34b 100644 --- a/examples/inverse/dics_epochs.py +++ b/examples/inverse/dics_epochs.py @@ -5,11 +5,10 @@ Compute source level time-frequency timecourses using a DICS beamformer ======================================================================= -In this example, a Dynamic Imaging of Coherent Sources (DICS) -:footcite:`GrossEtAl2001` beamformer is used to transform sensor-level -time-frequency objects to the source level. We will look at the event-related -synchronization (ERS) of beta band activity in the :ref:`somato dataset -`. +In this example, a Dynamic Imaging of Coherent Sources (DICS) :footcite:`GrossEtAl2001` +beamformer is used to transform sensor-level time-frequency objects to the source level. +We will look at the event-related synchronization (ERS) of beta band activity in the +:ref:`somato dataset `. """ # Authors: Marijn van Vliet # Alex Rockhill diff --git a/mne/datasets/_fetch.py b/mne/datasets/_fetch.py index deb72488b86..0697add2202 100644 --- a/mne/datasets/_fetch.py +++ b/mne/datasets/_fetch.py @@ -26,6 +26,7 @@ _downloader_params, _get_path, _log_time_size, + _pl, ) _FAKE_VERSION = None # used for monkeypatching while testing versioning @@ -253,6 +254,9 @@ def fetch_dataset( # use our logger level for pooch's logger too pooch.get_logger().setLevel(logger.getEffectiveLevel()) sz = 0 + logger.info( + "Fetching %s file%s for the %s dataset ...", len(names), _pl(names), name + ) for idx in range(len(names)): # fetch and unpack the data diff --git a/mne/datasets/config.py b/mne/datasets/config.py index ca65910dda6..3b8c43145ea 100644 --- a/mne/datasets/config.py +++ b/mne/datasets/config.py @@ -211,8 +211,8 @@ MNE_DATASETS["somato"] = dict( archive_name="MNE-somato-data.tar.gz", - hash="md5:32fd2f6c8c7eb0784a1de6435273c48b", - url="https://osf.io/download/tp4sg?version=7", + hash="md5:9a191907b326b9402341ee7a0d1240d8", + url="https://osf.io/download/tp4sg?version=8", folder_name="MNE-somato-data", config_key="MNE_DATASETS_SOMATO_PATH", ) From b88709f05296831ed386f656f2491823f7d03b28 Mon Sep 17 00:00:00 2001 From: Eric Larson Date: Wed, 11 Feb 2026 11:50:50 -0500 Subject: [PATCH 2/4] FIX: Maybe [skip azp] [skip actions] --- doc/sphinxext/related_software.txt | 1 + doc/sphinxext/related_software_nodeps.txt | 1 + 2 files changed, 2 insertions(+) diff --git a/doc/sphinxext/related_software.txt b/doc/sphinxext/related_software.txt index 85ceb8eb982..bf284b95839 100644 --- a/doc/sphinxext/related_software.txt +++ b/doc/sphinxext/related_software.txt @@ -13,6 +13,7 @@ meegkit meggie mne-ari mne-bids-pipeline +mne-denoise mne-faster mne-features mne-icalabel diff --git a/doc/sphinxext/related_software_nodeps.txt b/doc/sphinxext/related_software_nodeps.txt index 3e23d275880..c7b4d953d5c 100644 --- a/doc/sphinxext/related_software_nodeps.txt +++ b/doc/sphinxext/related_software_nodeps.txt @@ -2,3 +2,4 @@ cross-domain-saliency-maps fsleyes mne-kit-gui +mne-videobrowser From b66a47b7bac92d78013bec5e6ce0167e6185d0f5 Mon Sep 17 00:00:00 2001 From: Eric Larson Date: Wed, 11 Feb 2026 12:11:56 -0500 Subject: [PATCH 3/4] FIX: More [skip azp] [skip actions] --- doc/sphinxext/gh_substitutions.py | 20 ++++++++++++++++++-- doc/sphinxext/mne_doc_utils.py | 2 ++ 2 files changed, 20 insertions(+), 2 deletions(-) diff --git a/doc/sphinxext/gh_substitutions.py b/doc/sphinxext/gh_substitutions.py index 467e93c5470..9f9fc2eeff6 100644 --- a/doc/sphinxext/gh_substitutions.py +++ b/doc/sphinxext/gh_substitutions.py @@ -2,8 +2,24 @@ # License: BSD-3-Clause # Copyright the MNE-Python contributors. +import docutils from docutils.nodes import reference -from docutils.parsers.rst.roles import set_classes + +# Adapted from sphinx +if docutils.__version_info__[:2] < (0, 22): + from docutils.parsers.rst import roles + + def _normalize_options(options): + if options is None: + return {} + n_options = options.copy() + roles.set_classes(n_options) + return n_options + +else: + from docutils.parsers.rst.roles import ( + normalize_options as _normalize_options, + ) def gh_role(name, rawtext, text, lineno, inliner, options={}, content=[]): # noqa: B006 @@ -22,7 +38,7 @@ def gh_role(name, rawtext, text, lineno, inliner, options={}, content=[]): # no slug = "issues/" + text text = "#" + text ref = "https://github.com/mne-tools/mne-python/" + slug - set_classes(options) + options = _normalize_options(options) node = reference(rawtext, text, refuri=ref, **options) return [node], [] diff --git a/doc/sphinxext/mne_doc_utils.py b/doc/sphinxext/mne_doc_utils.py index 4a0ebf48bf1..56d5cb0dace 100644 --- a/doc/sphinxext/mne_doc_utils.py +++ b/doc/sphinxext/mne_doc_utils.py @@ -72,6 +72,8 @@ def reset_warnings(gallery_conf, fname): r"open_text is deprecated\. Use files", # dipy etc. "The `disp` and `iprint` options of the L-BFGS-B solver", + # statsmodels<->pandas + "is deprecated and will be removed", ): warnings.filterwarnings( # deal with other modules having bad imports "ignore", message=f".*{key}.*", category=DeprecationWarning From e7e5dd248eceff34f6173786f90b02fdb89cd057 Mon Sep 17 00:00:00 2001 From: Eric Larson Date: Wed, 11 Feb 2026 12:27:10 -0500 Subject: [PATCH 4/4] FIX: More --- doc/sphinxext/mne_doc_utils.py | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/doc/sphinxext/mne_doc_utils.py b/doc/sphinxext/mne_doc_utils.py index 56d5cb0dace..12529c2244a 100644 --- a/doc/sphinxext/mne_doc_utils.py +++ b/doc/sphinxext/mne_doc_utils.py @@ -78,6 +78,16 @@ def reset_warnings(gallery_conf, fname): warnings.filterwarnings( # deal with other modules having bad imports "ignore", message=f".*{key}.*", category=DeprecationWarning ) + # ignore (PendingDeprecationWarning) + for key in ( + # sphinx + "The mapping interface for autodoc options", + # sphinxcontrib-bibtex + "sphinx.environment.BuildEnvironment.app' is deprecated", + ): + warnings.filterwarnings( # deal with other modules having bad imports + "ignore", message=f".*{key}.*", category=PendingDeprecationWarning + ) # ignore (UserWarning) for message in ( # Matplotlib