content: [build-system]
  requires = ["hatchling", "hatch-vcs"]
  build-backend = "hatchling.build"
  
  [project]
  name = "mne-nirs"
  description = "An MNE compatible package for processing near-infrared spectroscopy data"
  dynamic = ["version"]
  maintainers = [{ name = "Robert Luke", email = "robert.luke@mq.edu.au" }]
  license = { text = "BSD-3-Clause" }
  readme = { file = "README.rst", content-type = "text/x-rst" }
  
  requires-python = ">=3.10"
  keywords = [
      "neuroscience",
      "neuroimaging",
      "MEG",
      "EEG",
      "ECoG",
      "fNIRS",
      "brain",
  ]
  classifiers = [
      "Intended Audience :: Science/Research",
      "Intended Audience :: Developers",
      "License :: OSI Approved",
      "Programming Language :: Python",
      "Topic :: Software Development",
      "Topic :: Scientific/Engineering",
      "Operating System :: Microsoft :: Windows",
      "Operating System :: POSIX",
      "Operating System :: Unix",
      "Operating System :: MacOS",
      "Programming Language :: Python :: 3",
  ]
  dependencies = [
      "numpy>=1.11.3,<3",
      "scipy>=0.17.1",
      "mne>=1.0",
      "h5io>=0.1.7",
      "nilearn>=0.9",
      "seaborn",
  ]
  
  
  [project.urls]
  Homepage = "https://mne.tools/mne-nirs/"
  Download = "https://github.com/mne-tools/mne-nirs"
  "Source Code" = "https://github.com/mne-tools/mne-nirs/"
  
  [project.optional-dependencies]
  tests = ["pytest", "pytest-cov"]
  docs = ["sphinx", "sphinx-gallery", "pydata_sphinx_theme", "numpydoc", "matplotlib"]
  
  [tool.hatch.build]
  exclude = [
      "/.*",
      "/*.yml",
      "/*.txt",
      "/doc",
      "/examples",
      "/tools",
      "/CONTRIBUTING.md",
      "/Dockerfile",
  ] # tracked by git, but we don't want to ship those files
  
  [tool.hatch.version]
  source = "vcs"
  raw-options = { version_scheme = "release-branch-semver" }
  
  [tool.codespell]
  ignore-words = ".github/workflows/ignore_words.txt"
  builtin = "clear,rare,informal,names,usage"
  skip = "doc/references.bib"
  
  [tool.ruff.lint]
  select = ["A", "B006", "D", "E", "F", "I", "W", "UP"]
  exclude = ["__init__.py"]
  ignore = [
      "D100", # Missing docstring in public module
      "D104", # Missing docstring in public package
      "D413", # Missing blank line after last section
      "UP031", # Use format specifiers instead of percent format
  ]
  
  [tool.ruff.lint.pydocstyle]
  convention = "numpy"
  ignore-decorators = [
      "property",
      "setter",
      "mne.utils.copy_function_doc_to_method_doc",
      "mne.utils.copy_doc",
      "mne.utils.deprecated",
  ]
  
  [tool.ruff.lint.per-file-ignores]
  "examples/*/*.py" = [
      "D103", # Missing docstring in public function
      "D205", # 1 blank line required between summary line and description
      "D400", # First line should end with a period
  ]
  "mne_nirs/**/tests/*.py" = [
      "D103", # Missing docstring in public function
      "D400", # First line should end with a period
  ]
  
  [tool.pytest.ini_options]
  # -r f (failed), E (error), s (skipped), x (xfail), X (xpassed), w (warnings)
  # don't put in xfail for pytest 8.0+ because then it prints the tracebacks,
  # which look like real errors
  addopts = """--durations=20 --doctest-modules -rfEXs --cov-report= --tb=short \
      --cov-branch --doctest-ignore-import-errors --junit-xml=junit-results.xml \
      --ignore=doc --ignore=logo --ignore=examples --ignore=tutorials \
      --ignore=mne/gui/_*.py --ignore=mne/icons --ignore=tools \
      --ignore=mne/report/js_and_css \
      --color=yes --capture=sys"""
  junit_family = "xunit2"
  