content: [build-system]
  requires = ["hatchling", "hatch-vcs"]
  build-backend = "hatchling.build"
  
  [project]
  name = "tedana"
  description = "TE-Dependent Analysis (tedana) of multi-echo functional magnetic resonance imaging (fMRI) data."
  readme = "README.md"
  authors = [{name = "tedana developers"}]
  classifiers = [
      "Development Status :: 4 - Beta",
      "Intended Audience :: Science/Research",
      "Topic :: Scientific/Engineering :: Information Analysis",
      "License :: OSI Approved :: GNU Library or Lesser General Public License (LGPL)",
      "Programming Language :: Python :: 3.9",
      "Programming Language :: Python :: 3.10",
      "Programming Language :: Python :: 3.11",
      "Programming Language :: Python :: 3.12",
      "Programming Language :: Python :: 3.13",
  ]
  license = {file = "LICENSE"}
  requires-python = ">=3.9"
  dependencies = [
      "bokeh>=1.0.0,<=3.6.3",
      "mapca>=0.0.4,<=0.0.5",
      "matplotlib",
      "nibabel>=2.5.1,<=5.3.2",
      "nilearn>=0.10.3,<=0.11.1",
      "numpy>=1.16,<=2.2.4",
      "pandas>=2.0,<=2.3.1",
      "pybtex",
      "pybtex-apa-style",
      "robustica>=0.1.4,<=0.1.4",
      "scikit-learn>=0.21, <=1.6.1",
      "scipy>=1.2.0, <=1.15.2",
      "seaborn <= 0.13.2",
      "threadpoolctl",
      "tqdm",
  ]
  dynamic = ["version"]
  
  [project.urls]
  Homepage = "https://github.com/ME-ICA/tedana"
  Documentation = "https://www.tedana.readthedocs.io"
  Paper = "https://joss.theoj.org/papers/10.21105/joss.03669"
  
  [project.optional-dependencies]
  dev = ["pre-commit"]
  doc = [
      "sphinx>=6.2.1",
      "sphinx_copybutton",
      "sphinx_rtd_theme>=1.2.2",
      "sphinx-argparse",
      "sphinxcontrib-bibtex",
  ]
  
  tests = [
      "codecov",
      "coverage",
      "flake8>=3.7",
      "flake8-absolute-import",
      "flake8-black",
      "flake8-docstrings",
      "flake8-isort",
      "flake8-pyproject",
      "flake8-unused-arguments",
      "flake8-use-fstring",
      "pep8-naming",
      "pytest",
      "pytest-cov>=4.0.0",
      "requests",
  ]
  
  # Aliases
  all = ["tedana[dev,doc,tests]"]
  
  [project.scripts]
  ica_reclassify = "tedana.workflows.ica_reclassify:_main"
  t2smap = "tedana.workflows.t2smap:_main"
  tedana = "tedana.workflows.tedana:_main"
  
  #
  # Hatch configurations
  #
  
  [tool.hatch.metadata]
  allow-direct-references = true
  
  [tool.hatch.build.targets.sdist]
  exclude = [".git_archival.txt"]  # No longer needed in sdist
  
  [tool.hatch.build.targets.wheel]
  packages = ["tedana"]
  exclude = [
      "tedana/tests/data",  # Large test data directory
  ]
  
  ##  The following two sections configure setuptools_scm in the hatch way
  
  [tool.hatch.version]
  source = "vcs"
  
  [tool.hatch.build.hooks.vcs]
  version-file = "tedana/_version.py"
  
  #
  # Developer tool configurations
  #
  
  [tool.black]
  line-length = 99
  target-version = ['py38']
  include = '\.pyi?$'
  exclude = '''
  
  (
    /(
        \.eggs         # exclude a few common directories in the
      | \.git          # root of the project
      | \.github
      | \.hg
      | \.pytest_cache
      | \.testing_data_cache
      | _build
      | build
      | dist
    )/
    | tedana/_version.py
  )
  '''
  
  [tool.isort]
  profile = "black"
  multi_line_output = 3
  
  [tool.flake8]
  max-line-length = 99
  exclude = [
      "*build/",
      "tedana/_version.py",
  ]
  ignore = ["E203", "E402", "W503"]
  per-file-ignores = [
      "*/__init__.py: F401",
      "tedana/tests/*: D",
  ]
  docstring-convention = "numpy"
  
  [tool.pydocstringformatter]
  write = true
  strip-whitespaces = true
  max-summary-lines = 1
  
  [tool.coverage.run]
  branch = true
  omit = [
      "*/tests/*",
      "*/__init__.py",
      "*/conftest.py",
      "tedana/_version.py",
  ]
  
  [tool.coverage.report]
  # Regexes for lines to exclude from consideration
  exclude_lines = [
      'raise NotImplementedError',
      'warnings\.warn',
  ]
  
  [tool.pytest]
  log_cli = true
  