@@ -22,12 +22,12 @@ classifiers = [
2222dependencies = [
2323 " decorator" ,
2424 " jinja2" ,
25- " lazy_loader>= 0.3" ,
26- " matplotlib>= 3.6" ,
27- " numpy>= 1.23,<3" ,
25+ " lazy_loader >= 0.3" ,
26+ " matplotlib >= 3.6" ,
27+ " numpy >= 1.23,<3" ,
2828 " packaging" ,
29- " pooch>= 1.5" ,
30- " scipy>= 1.9" ,
29+ " pooch >= 1.5" ,
30+ " scipy >= 1.9" ,
3131 " tqdm" ,
3232]
3333description = " MNE-Python project for MEG and EEG data analysis."
@@ -45,7 +45,7 @@ license = {text = "BSD-3-Clause"}
4545maintainers = [{email = " dan@mccloy.info" , name = " Dan McCloy" }]
4646name = " mne"
4747readme = {content-type = " text/x-rst" , file = " README.rst" }
48- requires-python = " >=3.10"
48+ requires-python = " >= 3.10"
4949scripts = {mne = " mne.commands.utils:main" }
5050
5151[project .optional-dependencies ]
@@ -55,97 +55,99 @@ dev = ["mne[doc,test]", "rcssmin"]
5555# Dependencies for building the documentation
5656doc = [
5757 " graphviz" ,
58- " intersphinx_registry>= 0.2405.27" ,
59- " ipython!= 8.7.0" ,
58+ " intersphinx_registry >= 0.2405.27" ,
59+ " ipython != 8.7.0" , # also in "full-no-qt" and "test"
6060 " memory_profiler" ,
6161 " mne-bids" ,
6262 " mne-connectivity" ,
6363 " mne-gui-addons" ,
6464 " neo" ,
6565 " numpydoc" ,
6666 " psutil" ,
67- " pydata_sphinx_theme>= 0.15.2" ,
68- " pygments>= 2.13" ,
67+ " pydata_sphinx_theme >= 0.15.2" ,
68+ " pygments >= 2.13" ,
6969 " pytest" ,
7070 " pyxdf" ,
71- " pyzmq!= 24.0.0" ,
72- " seaborn!= 0.11.2" ,
71+ " pyzmq != 24.0.0" ,
72+ " seaborn != 0.11.2" ,
7373 " selenium" ,
74+ " sphinx >= 6" ,
7475 " sphinx-design" ,
75- " sphinx-gallery>=0.16" ,
76- " sphinx>=6" ,
76+ " sphinx-gallery >= 0.16" ,
7777 " sphinx_copybutton" ,
78- " sphinxcontrib-bibtex>= 2.5" ,
78+ " sphinxcontrib-bibtex >= 2.5" ,
7979 " sphinxcontrib-towncrier" ,
8080 " sphinxcontrib-youtube" ,
8181 # https://github.com/sphinx-contrib/sphinxcontrib-towncrier/issues/92
82- " towncrier< 24.7" ,
82+ " towncrier < 24.7" ,
8383]
84- full = [" mne[full-no-qt]" , " PyQt6!= 6.6.0" , " PyQt6-Qt6!= 6.6.0,!= 6.7.0" ]
84+ full = [" mne[full-no-qt]" , " PyQt6 != 6.6.0" , " PyQt6-Qt6 != 6.6.0, != 6.7.0" ]
8585# Dependencies for full MNE-Python functionality (other than raw/epochs export)
8686# We first define a variant without any Qt bindings. The "complete" variant, mne[full],
8787# makes an opinionated choice and installs PyQt6.
8888# We also offter two more variants: mne[full-qt6] (which is equivalent to mne[full]),
8989# and mne[full-pyside6], which will install PySide6 instead of PyQt6.
9090full-no-qt = [
91- " antio>= 0.4.0" ,
91+ " antio >= 0.4.0" ,
9292 " darkdetect" ,
9393 " defusedxml" ,
9494 " dipy" ,
95- " edfio>= 0.2.1" ,
95+ " edfio >= 0.2.1" ,
9696 " eeglabio" ,
9797 " h5py" ,
98- " imageio-ffmpeg>=0.4 .1" ,
99- " imageio>=2.6 .1" ,
98+ " imageio >= 2.6 .1" ,
99+ " imageio-ffmpeg >= 0.4 .1" ,
100100 " ipyevents" ,
101101 " ipympl" ,
102+ " ipython != 8.7.0" , # for notebook backend; also in "doc" and "test"
102103 " ipywidgets" ,
103104 " joblib" ,
104105 " jupyter" ,
105- " mffpy>= 0.5.7" ,
106+ " mffpy >= 0.5.7" ,
106107 " mne-qt-browser" ,
107108 " mne[hdf5]" ,
108109 " neo" ,
109110 " nibabel" ,
110111 " nilearn" ,
111112 " numba" ,
112- " openmeeg>= 2.5.5" ,
113+ " openmeeg >= 2.5.5" ,
113114 " pandas" ,
115+ " pillow" , # for `Brain.save_image` and `mne.Report`
114116 " pyarrow" , # only needed to avoid a deprecation warning in pandas
115117 " pybv" ,
116- " pyobjc-framework-Cocoa>= 5.2.0; platform_system== 'Darwin'" ,
118+ " pyobjc-framework-Cocoa >= 5.2.0; platform_system == 'Darwin'" ,
117119 " python-picard" ,
118- " pyvista>= 0.32,!= 0.35.2,!= 0.38.0,!= 0.38.1,!= 0.38.2,!= 0.38.3,!= 0.38.4,!= 0.38.5,!= 0.38.6,!= 0.42.0" ,
119- " pyvistaqt>= 0.4" ,
120- " qdarkstyle!= 3.2.2" ,
120+ " pyvista >= 0.32, != 0.35.2, != 0.38.0, != 0.38.1, != 0.38.2, != 0.38.3, != 0.38.4, != 0.38.5, != 0.38.6, != 0.42.0" ,
121+ " pyvistaqt >= 0.4" ,
122+ " qdarkstyle != 3.2.2" ,
121123 " qtpy" ,
122124 " scikit-learn" ,
123125 " sip" ,
124126 " snirf" ,
125- # duplicated in test_extra:
126127 " statsmodels" ,
127128 " threadpoolctl" ,
128129 " traitlets" ,
129130 " trame" ,
130131 " trame-vtk" ,
131132 " trame-vuetify" ,
132- " vtk" ,
133+ " vtk >= 9.2 " ,
133134 " xlrd" ,
134135]
135136full-pyqt6 = [" mne[full]" ]
136- full-pyside6 = [" mne[full-no-qt]" , " PySide6!= 6.7.0,!= 6.8.0,!= 6.8.0.1" ]
137+ full-pyside6 = [" mne[full-no-qt]" , " PySide6 != 6.7.0, != 6.8.0, != 6.8.0.1" ]
137138# Dependencies for MNE-Python functions that use HDF5 I/O
138- hdf5 = [" h5io>= 0.2.4" , " pymatreader" ]
139+ hdf5 = [" h5io >= 0.2.4" , " pymatreader" ]
139140# Dependencies for running the test infrastructure
140141test = [
141142 " codespell" ,
143+ " ipython != 8.7.0" , # for testing notebook backend; also in "full-no-qt" and "doc"
142144 " mypy" ,
143145 " numpydoc" ,
144146 " pre-commit" ,
147+ " pytest >= 8.0" ,
145148 " pytest-cov" ,
146149 " pytest-qt" ,
147150 " pytest-timeout" ,
148- " pytest>=8.0.0rc2" ,
149151 " ruff" ,
150152 " toml-sort" ,
151153 " tomli; python_version<'3.11'" ,
@@ -154,14 +156,17 @@ test = [
154156 " wheel" ,
155157]
156158# Dependencies for being able to run additional tests (rare/CIs/advanced devs)
159+ # Changes here should be reflected in the mne/utils/config.py dev dependencies section
157160test_extra = [
158- " edfio>= 0.2.1" ,
161+ " edfio >= 0.2.1" ,
159162 " eeglabio" ,
160- " imageio-ffmpeg>=0.4.1" ,
161- " imageio>=2.6.1" ,
163+ " imageio >= 2.6.1" ,
164+ " imageio-ffmpeg >= 0.4.1" ,
165+ " jupyter_client" ,
162166 " mne-bids" ,
163167 " mne[test]" ,
164168 " nbclient" ,
169+ " nbformat" ,
165170 " neo" ,
166171 " nitime" ,
167172 " pybv" ,
0 commit comments