content: [build-system]
  build-backend = "hatchling.build"
  requires = ["hatch-vcs", "hatchling==1.26.3"]
  
  [project]
  authors = [{name = "The MNE-BIDS developers"}]
  classifiers = [
    "Intended Audience :: Developers",
    "Intended Audience :: Science/Research",
    "License :: OSI Approved",
    "Operating System :: MacOS",
    "Operating System :: Microsoft :: Windows",
    "Operating System :: POSIX :: Linux",
    "Programming Language :: Python :: 3.10",
    "Programming Language :: Python :: 3.11",
    "Programming Language :: Python :: 3.12",
    "Programming Language :: Python :: 3.13",
    "Programming Language :: Python",
    "Topic :: Scientific/Engineering",
    "Topic :: Scientific/Engineering",
    "Topic :: Software Development",
  ]
  dependencies = ["mne>=1.8", "numpy>=1.23", "scipy>=1.9"]
  description = "MNE-BIDS: Organizing MEG, EEG, and iEEG data according to the BIDS specification and facilitating their analysis with MNE-Python"
  dynamic = ["version"]
  keywords = [
    "bids",
    "brain imaging data structure",
    "eeg",
    "ieeg",
    "meg",
    "neuroimaging",
    "neuroscience",
  ]
  license = {text = "BSD-3-Clause"}
  maintainers = [
    {email = "stefan.appelhoff@mailbox.org", name = "Stefan Appelhoff"},
  ]
  name = "mne-bids"
  readme = {content-type = "text/markdown", file = "README.md"}
  requires-python = ">=3.10"
  scripts = {mne_bids = "mne_bids.commands.run:main"}
  
  [project.optional-dependencies]
  # Dependencies for developer installations
  dev = ["mne_bids[test,doc,full]", "pre-commit"]
  # Dependencies for building the documentation
  doc = [
    "intersphinx_registry",
    "matplotlib",
    "mne-nirs",
    "nilearn",
    "numpydoc",
    "openneuro-py",
    "pandas",
    "pillow",
    "pydata-sphinx-theme",
    "seaborn",
    "sphinx-copybutton",
    "sphinx>=7.4.7",
    "sphinx_gallery",
  ]
  # Dependencies for using all mne_bids features
  full = [
    "defusedxml",  # For reading EGI MFF data and BrainVision montages
    "edfio >= 0.4.10",
    "eeglabio >= 0.1.0",
    "matplotlib >= 3.6",
    "nibabel >= 3.2.1",
    "pandas >= 1.3.2",
    "pybv >= 0.7.5",
    "pymatreader",
  ]
  # Dependencies for running the test infrastructure
  test = ["mne_bids[full]", "pytest", "pytest-cov", "pytest-sugar", "ruff"]
  
  [project.urls]
  "Bug Tracker" = "https://github.com/mne-tools/mne-bids/issues/"
  "Documentation" = "https://mne.tools/mne-bids"
  "Download" = "https://pypi.org/project/mne-bids/#files"
  "Forum" = "https://mne.discourse.group/"
  "Homepage" = "https://mne.tools/mne-bids"
  "Source Code" = "https://github.com/mne-tools/mne-bids"
  
  [tool.coverage.report]
  # Regexes for lines to exclude from consideration
  exclude_lines = ["if 0:", "if __name__ == .__main__.:", "pragma: no cover"]
  
  [tool.coverage.run]
  omit = ["*tests*"]
  
  [tool.hatch.build]
  exclude = [
    "**/tests",
    "/.*",
    "/CITATION.cff",
    "/CONTRIBUTING.md",
    "/doc",
    "/examples",
    "/Makefile",
    "/paper",
  ]
  
  [tool.hatch.metadata]
  allow-direct-references = true  # allow specifying URLs in our dependencies
  
  [tool.hatch.version]
  raw-options = {version_scheme = "release-branch-semver"}
  source = "vcs"
  
  [tool.pytest.ini_options]
  addopts = """--durations=20 -ra --junit-xml=junit-results.xml --tb=short
      --ignore=doc --ignore=examples --ignore=mne_bids/tests/data"""
  filterwarnings = [
    "error",
    # Python 3.10+ and NumPy 1.22 (and maybe also newer NumPy versions?)
    "ignore:.*distutils\\.sysconfig module is deprecated.*:DeprecationWarning",
    # NumPy 2.1 bug (probably)
    "ignore:__array__ implementation doesn.*:DeprecationWarning",
    # numba with NumPy dev
    "ignore:`np.MachAr` is deprecated.*:DeprecationWarning",
    "ignore:`product` is deprecated as of NumPy.*:DeprecationWarning",
    "ignore:Converting data files to BrainVision format:RuntimeWarning",
    "ignore:Converting to BV for anonymization:RuntimeWarning",
    "ignore:Converting to FIF for anonymization:RuntimeWarning",
    "ignore:datetime\\.datetime\\.utcfromtimestamp.* is deprecated and scheduled for removal in a future version.*:DeprecationWarning",
    "ignore:Did not find any coordsystem.json.*:RuntimeWarning",
    "ignore:Did not find any electrodes.tsv.*:RuntimeWarning",
    "ignore:Did not find any events.tsv.*:RuntimeWarning",
    "ignore:Estimation of line frequency only supports.*:RuntimeWarning",
    # matplotlib
    "ignore:Figure.*is non-interactive.*cannot be shown:UserWarning",
    "ignore:MEG ref channel RMSP did not.*:RuntimeWarning",
    "ignore:No events found or provided.*:RuntimeWarning",
    "ignore:numpy.ufunc size changed.*:RuntimeWarning",
    "ignore:Participants file not found for.*:RuntimeWarning",
    # old MNE _fake_click
    "ignore:The .*_event function was deprecated in Matplotlib.*:",
    "ignore:There are channels without locations (n/a)*:RuntimeWarning",
    "ignore:tostring\\(\\) is deprecated.*:DeprecationWarning",
    "ignore:Writing of electrodes.tsv is not supported for datatype.*:RuntimeWarning",
  ]
  
  [tool.ruff.lint]
  exclude = ["__init__.py"]
  ignore = ["A002", "A005"]
  select = ["A", "D", "E", "F", "I", "UP", "W"]
  
  [tool.ruff.lint.pydocstyle]
  convention = "numpy"
  
  [tool.tomlsort]
  all = true
  ignore_case = true
  spaces_before_inline_comment = 2
  trailing_comma_inline_array = true
  