diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 24710655b67..c60f8eb5945 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -63,6 +63,12 @@ repos: - id: toml-sort-fix files: pyproject.toml + # module interdependencies + - repo: https://github.com/gauge-sh/tach-pre-commit + rev: v0.28.0 + hooks: + - id: tach + # dependencies - repo: local hooks: diff --git a/mne/preprocessing/_regress.py b/mne/preprocessing/_regress.py index 6a87649f138..d7d54c637d6 100644 --- a/mne/preprocessing/_regress.py +++ b/mne/preprocessing/_regress.py @@ -5,11 +5,11 @@ import numpy as np from .._fiff.pick import _picks_to_idx, pick_info +from .._fiff.proj import _needs_eeg_average_ref_proj from ..defaults import _BORDER_DEFAULT, _EXTRAPOLATE_DEFAULT, _INTERPOLATION_DEFAULT from ..epochs import BaseEpochs from ..evoked import Evoked from ..io import BaseRaw -from ..minimum_norm.inverse import _needs_eeg_average_ref_proj from ..utils import ( _check_fname, _check_option, diff --git a/pyproject.toml b/pyproject.toml index 59e5a1703e3..38c942a2ac7 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -148,6 +148,7 @@ test = [ "pytest-qt", "pytest-timeout", "ruff", + "tach", "toml-sort", "tomli; python_version<'3.11'", "twine", diff --git a/tach.toml b/tach.toml new file mode 100644 index 00000000000..b1d041cb613 --- /dev/null +++ b/tach.toml @@ -0,0 +1,131 @@ +interfaces = [] +exclude = [ + "**/*__pycache__", + "**/*egg-info", + "**/tests", + "**/venv", + "mne/conftest.py" +] + +source_roots = [ "mne", +] + +[[modules ]] +path = "preprocessing" +depends_on = ["epochs", "forward", "surface", "decoding", "io", "channels", "utils", "cov", "bem", "filter", "viz", "transforms", "event"] + +[[modules ]] +path = "datasets" +depends_on = ["channels", "epochs", "utils", "label"] + +[[modules ]] +path = "minimum_norm" +depends_on = ["baseline", "time_frequency", "transforms", "io", "cov", "source_space", "surface", "epochs", "label", "event", "forward", "utils"] + +[[modules ]] +path = "io" +depends_on = ["utils", "time_frequency", "viz", "filter", "epochs", "transforms", "chpi", "preprocessing", "surface", "channels", "export", "event", "coreg"] + +[[modules ]] +path = "source_space" +depends_on = ["label", "transforms", "surface", "utils", "bem", "viz"] + +[[modules ]] +path = "simulation" +depends_on = ["source_space", "io", "label", "epochs", "utils", "chpi", "bem", "forward", "cov", "event", "surface", "transforms"] + +[[modules ]] +path = "bem" +depends_on = ["utils", "surface", "transforms", "viz"] + +[[modules ]] +path = "epochs" +depends_on = ["export", "channels", "utils", "chpi", "baseline", "io", "viz", "time_frequency", "preprocessing", "filter", "bem", "event", "forward"] + +[[modules ]] +path = "coreg" +depends_on = ["bem", "surface", "source_space", "label", "utils", "viz", "channels", "transforms"] + +[[modules ]] +path = "gui" +depends_on = ["channels", "io", "surface", "viz", "coreg", "bem", "transforms", "utils"] + +[[modules ]] +path = "label" +depends_on = ["surface", "stats", "viz", "utils", "source_space"] + +[[modules ]] +path = "decoding" +depends_on = ["epochs", "cuda", "cov", "filter", "time_frequency", "utils"] + +[[modules ]] +path = "chpi" +depends_on = ["preprocessing", "utils", "cov", "dipole", "io", "event", "channels", "transforms", "forward"] + +[[modules ]] +path = "cuda" +depends_on = ["utils"] + +[[modules ]] +path = "time_frequency" +depends_on = ["viz", "baseline", "channels", "io", "epochs", "cov", "utils", "filter"] + +[[modules ]] +path = "transforms" +depends_on = ["utils", "bem", "channels", "source_space"] + +[[modules ]] +path = "baseline" +depends_on = ["utils"] + +[[modules ]] +path = "export" +depends_on = ["io", "utils"] + +[[modules ]] +path = "stats" +depends_on = ["epochs", "source_space", "utils"] + +[[modules ]] +path = "event" +depends_on = ["io", "utils"] + +[[modules ]] +path = "utils" +depends_on = ["event", "source_space", "cov", "dipole", "channels", "io", "time_frequency", "viz", "bem", "epochs"] + +[[modules ]] +path = "forward" +depends_on = ["dipole", "label", "epochs", "source_space", "cov", "utils", "surface", "bem", "io", "transforms"] + +[[modules ]] +path = "dipole" +depends_on = ["forward", "transforms", "utils", "source_space", "cov", "bem", "surface", "viz"] + +[[modules ]] +path = "inverse_sparse" +depends_on = ["dipole", "minimum_norm", "time_frequency", "forward", "utils"] + +[[modules ]] +path = "surface" +depends_on = ["bem", "utils", "transforms", "channels"] + +[[modules ]] +path = "viz" +depends_on = ["preprocessing", "utils", "io", "baseline", "time_frequency", "stats", "source_space", "bem", "coreg", "forward", "transforms", "surface", "dipole", "channels", "label", "minimum_norm", "chpi", "cov", "epochs", "filter"] + +[[modules ]] +path = "channels" +depends_on = ["preprocessing", "utils", "bem", "viz", "forward", "io", "transforms", "surface", "cov", "time_frequency", "epochs"] + +[[modules ]] +path = "filter" +depends_on = ["utils", "epochs", "io", "cuda", "time_frequency"] + +[[modules ]] +path = "beamformer" +depends_on = ["channels", "minimum_norm", "time_frequency", "utils", "cov", "source_space", "inverse_sparse", "forward"] + +[[modules ]] +path = "cov" +depends_on = ["viz", "utils", "epochs", "io", "event"]