Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
25 commits
Select commit Hold shift + click to select a range
d76c420
ENH: adds annotation filtering to raw figures
DerAndereJohannes Sep 17, 2025
0f25754
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Sep 17, 2025
3c747ce
ENH: Add Tests and Documentation for annotation_regex parameter
DerAndereJohannes Sep 17, 2025
936bfae
[pre-commit.ci] pre-commit autoupdate (#13427)
pre-commit-ci[bot] Sep 22, 2025
08ef1c7
MAINT: Reenable mpl nightly (#13426)
larsoner Sep 23, 2025
3fbf986
FIX: Add on_few_samples parameter to core rank estimation (#13350)
emmanuel-ferdman Sep 23, 2025
3e29187
FIX, TST: Try to get test_export_epochs_eeeglab passing again (#13428)
scott-huberty Sep 24, 2025
51b6a5c
MAINT: Update code credit (#13432)
github-actions[bot] Oct 1, 2025
34e2743
[pre-commit.ci] pre-commit autoupdate (#13431)
pre-commit-ci[bot] Oct 2, 2025
4fdde3a
[pre-commit.ci] pre-commit autoupdate (#13434)
pre-commit-ci[bot] Oct 7, 2025
61bc8b8
Add BDF export (#13435)
cbrnr Oct 8, 2025
adc01cd
MAINT: Ensure full checkout is used (#13439)
larsoner Oct 10, 2025
231f224
FIX: Update osf.io links to new format (#13440)
DerAndereJohannes Oct 13, 2025
06d09de
[pre-commit.ci] pre-commit autoupdate (#13443)
pre-commit-ci[bot] Oct 13, 2025
94d9871
Use timezone-aware ISO 8601 for website timestamp (#13347)
cbrnr Oct 14, 2025
7fb19a1
ENH: Dont constrain fiducial clicks to mesh vertices (#13445)
larsoner Oct 14, 2025
f3c00cc
Bump github/codeql-action from 3 to 4 in the actions group (#13442)
dependabot[bot] Oct 14, 2025
e2d4ebc
MAINT: Deploy [circle deploy] [skip azp] [skip actions]
larsoner Oct 15, 2025
96bef2a
MAINT: Auth [skip azp] [skip actions]
larsoner Oct 15, 2025
3cfac64
MAINT: Restore PySide6 6.10.0 testing (#13446)
larsoner Oct 15, 2025
dc2908e
ENH: adds annotation filtering to raw figures
DerAndereJohannes Sep 17, 2025
7fbdd75
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Sep 17, 2025
a3d61cd
ENH: Add Tests and Documentation for annotation_regex parameter
DerAndereJohannes Sep 17, 2025
22c16c9
Merge branch 'annotation_regex' of github.com:DerAndereJohannes/mne-p…
DerAndereJohannes Oct 19, 2025
82ab0ac
ENH: Add Tests and Documentation for annotation_regex parameter in
DerAndereJohannes Oct 19, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 10 additions & 4 deletions .circleci/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,8 @@ jobs:
- restore_cache:
keys:
- source-cache
- checkout
- checkout:
method: full
- run:
name: Complete checkout
command: |
Expand Down Expand Up @@ -461,7 +462,11 @@ jobs:
at: /tmp/build
- restore_cache:
keys:
- website-cache
- website-cache-1
- add_ssh_keys:
fingerprints:
# SHA256:N4qvp6MSbXcTz/27xz96VPsNuTDRT92zoRP8EW0I/8I
- "19:fe:1d:c3:c7:af:7e:16:94:4c:e1:e7:0a:56:13:bd"
- run:
name: Set BASH_ENV
command: |
Expand Down Expand Up @@ -489,6 +494,7 @@ jobs:
command: |
git config --global user.email "circle@mne.tools";
git config --global user.name "Circle CI";
ssh-add -D && ssh-add ~/.ssh/id_rsa_19fe1dc3c7af7e16944ce1e70a5613bd
cd ~/mne-tools.github.io;
git checkout main
git remote -v
Expand All @@ -510,9 +516,9 @@ jobs:
fi;
git push origin main;
- save_cache:
key: website-cache
key: website-cache-1
paths:
- ~/mne_data/MNE-visual_92_categories-data
- ~/mne-tools.github.io

workflows:
default:
Expand Down
6 changes: 3 additions & 3 deletions .github/workflows/codeql-analysis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ jobs:

# Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL
uses: github/codeql-action/init@v3
uses: github/codeql-action/init@v4
with:
languages: ${{ matrix.language }}
# If you wish to specify custom queries, you can do so here or in a config file.
Expand All @@ -58,7 +58,7 @@ jobs:
# Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
# If this step fails, then you should remove it and run the build manually (see below)
- name: Autobuild
uses: github/codeql-action/autobuild@v3
uses: github/codeql-action/autobuild@v4

# ℹ️ Command-line programs to run using the OS shell.
# 📚 See https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idstepsrun
Expand All @@ -71,4 +71,4 @@ jobs:
# ./location_of_script_within_repo/buildscript.sh

- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v3
uses: github/codeql-action/analyze@v4
20 changes: 13 additions & 7 deletions .github/workflows/tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@ jobs:
pytest:
name: '${{ matrix.os }} / ${{ matrix.kind }} / ${{ matrix.python }}'
needs: style
timeout-minutes: 90
timeout-minutes: 120
runs-on: ${{ matrix.os }}
defaults:
run:
Expand Down Expand Up @@ -78,7 +78,7 @@ jobs:
- os: macos-latest # arm64 (Apple Silicon): Sequoia
python: '3.13'
kind: mamba
- os: macos-14 # arm64 (Apple Silicon): Sonoma
- os: macos-15-intel # intel: Sequoia
python: '3.13'
kind: mamba
- os: windows-latest
Expand Down Expand Up @@ -128,12 +128,18 @@ jobs:
# For some reason on Linux we get crashes
if [[ "$RUNNER_OS" == "Linux" ]]; then
sed -i "/numba/d" environment.yml
fi
# And on Windows and macOS PySide6.9.0 segfaults
elif [[ "$RUNNER_OS" == "macOS" ]]; then
sed -i "" "s/ - PySide6 .*/ - PySide6 =6.7.3/g" environment.yml
sed -i "" "s/ - vtk .*/ - vtk =9.3.1/g" environment.yml
elif [[ "$RUNNER_OS" == "Windows" ]]; then
sed -i "s/ - PySide6 .*/ - PySide6 <6.8/g" environment.yml
if [[ "$RUNNER_OS" == "macOS" ]]; then
sed -i "" "s/ - PySide6 .*/ - PySide6 =6.9.2/g" environment.yml
sed -i "" "s/ - vtk .*/ - vtk =9.5.1/g" environment.yml

else
sed -i "s/ - PySide6 .*/ - PySide6 =6.9.2/g" environment.yml
sed -i "s/ - vtk .*/ - vtk =9.5.1/g" environment.yml
if [[ "$RUNNER_OS" == "Windows" ]]; then
echo "MNE_IS_OSMESA=true" | tee -a $GITHUB_ENV
fi
fi
if: matrix.kind == 'conda' || matrix.kind == 'mamba'
- uses: mamba-org/setup-micromamba@v2
Expand Down
4 changes: 2 additions & 2 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
repos:
# Ruff mne
- repo: https://github.com/astral-sh/ruff-pre-commit
rev: v0.13.0
rev: v0.14.0
hooks:
- id: ruff-check
name: ruff lint mne
Expand Down Expand Up @@ -82,7 +82,7 @@ repos:

# zizmor
- repo: https://github.com/woodruffw/zizmor-pre-commit
rev: v1.13.0
rev: v1.14.2
hooks:
- id: zizmor

Expand Down
1 change: 1 addition & 0 deletions doc/changes/dev/13350.apichange.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Add ``on_few_samples`` parameter to :func:`mne.compute_covariance` and :func:`mne.compute_raw_covariance` for controlling behavior when there are fewer samples than channels, which can lead to inaccurate covariance estimates, by :newcontrib:`Emmanuel Ferdman`.
1 change: 1 addition & 0 deletions doc/changes/dev/13425.newfeature.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Added `annotation_regex` parameter to :func:`mne.viz.raw.plot_raw` and :func:`mne.viz.ica.plot_sources`, automatically hiding annotations not matching the regex, by `Johannes Herforth`_.
1 change: 1 addition & 0 deletions doc/changes/dev/13428.bugfix.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Preserve event-to-epoch mapping when exporting EEGLAB .set files by `Scott Huberty`_
1 change: 1 addition & 0 deletions doc/changes/dev/13435.newfeature.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Add support for BDF export in :func:`mne.export.export_raw`, by `Clemens Brunner`_
1 change: 1 addition & 0 deletions doc/changes/dev/13440.bugfix.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Fix and update osf.io links to new format, by :newcontrib:`Johannes Herforth`.
1 change: 1 addition & 0 deletions doc/changes/dev/13445.newfeature.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Improve precision of fiducial clicking in ``mne coreg``, by `Eric Larson`_.
2 changes: 2 additions & 0 deletions doc/changes/names.inc
Original file line number Diff line number Diff line change
Expand Up @@ -76,6 +76,7 @@
.. _Eduard Ort: https://github.com/eort
.. _Emily Stephen: https://github.com/emilyps14
.. _Emma Bailey: https://www.cbs.mpg.de/employees/bailey
.. _Emmanuel Ferdman: https://github.com/emmanuel-ferdman
.. _Emrecan Çelik: https://github.com/emrecncelik
.. _Enrico Varano: https://github.com/enricovara/
.. _Enzo Altamiranda: https://www.linkedin.com/in/enzoalt
Expand Down Expand Up @@ -142,6 +143,7 @@
.. _jeythekey: https://github.com/jeythekey
.. _Joan Massich: https://github.com/massich
.. _Johann Benerradi: https://github.com/HanBnrd
.. _Johannes Herforth: https://herforth.net
.. _Johannes Niediek: https://github.com/jniediek
.. _John Samuelsson: https://github.com/johnsam7
.. _John Veillette: https://psychology.uchicago.edu/directory/john-veillette
Expand Down
20 changes: 16 additions & 4 deletions doc/conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -62,12 +62,24 @@

# We need to triage which date type we use so that incremental builds work
# (Sphinx looks at variable changes and rewrites all files if some change)
copyright = ( # noqa: A001
f'2012–{td.year}, MNE Developers. Last updated <time datetime="{td.isoformat()}" class="localized">{td.strftime("%Y-%m-%d %H:%M %Z")}</time>\n' # noqa: E501
'<script type="text/javascript">function formatTimestamp() {document.querySelectorAll("time.localized").forEach(el => el.textContent = new Date(el.getAttribute("datetime")).toLocaleString([], {dateStyle: "medium", timeStyle: "long"}));};if (document.readyState != "loading") formatTimestamp();else document.addEventListener("DOMContentLoaded", formatTimestamp);</script>' # noqa: E501
project_copyright = (
f'2012–{td.year}, MNE Developers. Last updated <time datetime="{td.isoformat()}" class="localized">{td.strftime("%Y-%m-%d %H:%M %Z")}</time>.\n' # noqa: E501
"""<script type="text/javascript">
function formatTimestamp() {
document.querySelectorAll("time.localized").forEach(el => {
const d = new Date(el.getAttribute("datetime"));
el.textContent = d.toLocaleString("sv-SE", { "timeZoneName": "short" });
});
}
if (document.readyState !== "loading") {
formatTimestamp();
} else {
document.addEventListener("DOMContentLoaded", formatTimestamp);
}
</script>"""
)
if os.getenv("MNE_FULL_DATE", "false").lower() != "true":
copyright = f"2012–{td.year}, MNE Developers. Last updated locally." # noqa: A001
project_copyright = f"2012–{td.year}, MNE Developers. Last updated locally."

# The version info for the project you're documenting, acts as replacement for
# |version| and |release|, also used in various other places throughout the
Expand Down
2 changes: 1 addition & 1 deletion doc/install/advanced.rst
Original file line number Diff line number Diff line change
Expand Up @@ -224,7 +224,7 @@ in certain operating systems, for example CentOS. This may lead to incomplete
rendering of some 3D plots. A solution is described in this `Github comment <https://github.com/mne-tools/mne-python/issues/7977#issuecomment-729921035>`_.
It boils down to building a newer version (e.g., 18.3.6)
locally following a variant of `these instructions <https://xorg-team.pages.debian.net/xorg/howto/build-mesa.html#_preparing_mesa_sources>`_.
If you have CentOS 7 or newer, you can also try some `prebuilt binaries <https://osf.io/sp9qg/download>`_ we made.
If you have CentOS 7 or newer, you can also try some `prebuilt binaries <https://osf.io/download/sp9qg>`_ we made.
After downloading the files, untar them and add them to the appropriate library paths
using the following commands:

Expand Down
14 changes: 7 additions & 7 deletions doc/install/installers.rst
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ Platform-specific installers
:class-content: text-center
:name: install-linux

.. button-link:: https://github.com/mne-tools/mne-installers/releases/download/v1.10.1/MNE-Python-1.10.1_0-Linux.sh
.. button-link:: https://github.com/mne-tools/mne-installers/releases/download/v1.10.2/MNE-Python-1.10.2_0-Linux.sh
:ref-type: ref
:color: primary
:shadow:
Expand All @@ -31,14 +31,14 @@ Platform-specific installers

.. code-block:: console

$ sh ./MNE-Python-1.10.1_0-Linux.sh
$ sh ./MNE-Python-1.10.2_0-Linux.sh


.. tab-item:: macOS (Intel)
:class-content: text-center
:name: install-macos-intel

.. button-link:: https://github.com/mne-tools/mne-installers/releases/download/v1.10.1/MNE-Python-1.10.1_0-macOS_Intel.pkg
.. button-link:: https://github.com/mne-tools/mne-installers/releases/download/v1.10.2/MNE-Python-1.10.2_0-macOS_Intel.pkg
:ref-type: ref
:color: primary
:shadow:
Expand All @@ -54,7 +54,7 @@ Platform-specific installers
:class-content: text-center
:name: install-macos-apple

.. button-link:: https://github.com/mne-tools/mne-installers/releases/download/v1.10.1/MNE-Python-1.10.1_0-macOS_M1.pkg
.. button-link:: https://github.com/mne-tools/mne-installers/releases/download/v1.10.2/MNE-Python-1.10.2_0-macOS_M1.pkg
:ref-type: ref
:color: primary
:shadow:
Expand All @@ -70,7 +70,7 @@ Platform-specific installers
:class-content: text-center
:name: install-windows

.. button-link:: https://github.com/mne-tools/mne-installers/releases/download/v1.10.1/MNE-Python-1.10.1_0-Windows.exe
.. button-link:: https://github.com/mne-tools/mne-installers/releases/download/v1.10.2/MNE-Python-1.10.2_0-Windows.exe
:ref-type: ref
:color: primary
:shadow:
Expand Down Expand Up @@ -156,7 +156,7 @@ To remove the MNE-Python distribution provided by our installers above:
.. code-block:: bash

$ which python
/home/username/mne-python/1.10.1_0/bin/python
/home/username/mne-python/1.10.2_0/bin/python
$ rm -Rf /home/$USER/mne-python
$ rm /home/$USER/.local/share/applications/mne-python-*.desktop

Expand All @@ -170,7 +170,7 @@ To remove the MNE-Python distribution provided by our installers above:
.. code-block:: bash

$ which python
/Users/username/Applications/MNE-Python/1.10.1_0/.mne-python/bin/python
/Users/username/Applications/MNE-Python/1.10.2_0/.mne-python/bin/python
$ rm -Rf /Users/$USER/Applications/MNE-Python # if user-specific
$ rm -Rf /Applications/MNE-Python # if system-wide

Expand Down
51 changes: 51 additions & 0 deletions doc/sphinxext/prs/13350.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
{
"merge_commit_sha": "3fbf9865c8e27f6cffe15fa5335e922e82933af7",
"authors": [
{
"n": "Emmanuel Ferdman",
"e": null
},
{
"n": "pre-commit-ci[bot]",
"e": "66853113+pre-commit-ci[bot]@users.noreply.github.com"
},
{
"n": "Eric Larson",
"e": "larson.eric.d@gmail.com"
}
],
"changes": {
"doc/changes/dev/13350.apichange.rst": {
"a": 1,
"d": 0
},
"doc/changes/names.inc": {
"a": 1,
"d": 0
},
"mne/cov.py": {
"a": 33,
"d": 7
},
"mne/decoding/_covs_ged.py": {
"a": 3,
"d": 0
},
"mne/decoding/tests/test_csp.py": {
"a": 1,
"d": 1
},
"mne/rank.py": {
"a": 54,
"d": 8
},
"mne/simulation/tests/test_evoked.py": {
"a": 2,
"d": 1
},
"mne/tests/test_rank.py": {
"a": 10,
"d": 0
}
}
}
27 changes: 27 additions & 0 deletions doc/sphinxext/prs/13375.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
{
"merge_commit_sha": "97fd038b2add2b5a08923d735af72e3688d6ebf0",
"authors": [
{
"n": "Thomas S. Binns",
"e": "t.s.binns@outlook.com"
}
],
"changes": {
"doc/changes/dev/13375.bugfix.rst": {
"a": 1,
"d": 0
},
"mne/channels/channels.py": {
"a": 8,
"d": 2
},
"mne/time_frequency/spectrum.py": {
"a": 4,
"d": 0
},
"mne/time_frequency/tests/test_spectrum.py": {
"a": 29,
"d": 3
}
}
}
27 changes: 27 additions & 0 deletions doc/sphinxext/prs/13395.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
{
"merge_commit_sha": "17c4e03b50b1f504ea607db68a616e677891cf75",
"authors": [
{
"n": "Emrecan Çelik",
"e": "emrecncelik@gmail.com"
},
{
"n": "Eric Larson",
"e": "larson.eric.d@gmail.com"
}
],
"changes": {
"doc/changes/dev/13395.bugfix.rst": {
"a": 1,
"d": 0
},
"doc/changes/names.inc": {
"a": 1,
"d": 0
},
"mne/io/eeglab/eeglab.py": {
"a": 3,
"d": 3
}
}
}
Loading
Loading