content: [build-system]
  requires = ["hatchling", "hatch-vcs"] # hatchling for build | hatch-vcs for versioning
  build-backend = "hatchling.build" # the build backend used
  
  [project]
  name = "pynwb"
  authors = [
    { name="Andrew Tritt", email="ajtritt@lbl.gov" },
    { name="Ryan Ly", email="rly@lbl.gov" },
    { name="Oliver Ruebel", email="oruebel@lbl.gov" },
    { name="Ben Dichter", email="ben.dichter@gmail.com" },
    { name="Matthew Avaylon", email="mavaylon@lbl.gov" },
    { name="Stephanie Prince", email="smprince@lbl.gov" },
  ]
  description= "Package for working with Neurodata stored in the NWB format."
  readme = "README.rst"
  requires-python = ">=3.9"
  license = {text = "BSD-3-Clause"}
  classifiers = [
          "Programming Language :: Python",
          "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 :: OSI Approved :: BSD License",
          "Development Status :: 5 - Production/Stable",
          "Intended Audience :: Developers",
          "Intended Audience :: Science/Research",
          "Operating System :: Microsoft :: Windows",
          "Operating System :: MacOS",
          "Operating System :: Unix",
          "Topic :: Scientific/Engineering :: Medical Science Apps."
  ]
  dependencies = [
      "h5py>=3.2.0",
      "hdmf>=4.1.0,<5",
      "numpy>=1.24.0",
      "pandas>=1.2.0",
      "python-dateutil>=2.8.2",
      "platformdirs>=4.1.0"
  ]
  dynamic = ["version"] # the build backend will compute the version dynamically from git tag (or a __version__)
  
  [project.optional-dependencies]
  # Add optional dependencies here
  
  [project.urls]
  "Homepage" = "https://github.com/NeurodataWithoutBorders/pynwb"
  "Bug Tracker" = "https://github.com/NeurodataWithoutBorders/pynwb/issues"
  
  [project.scripts]
  pynwb-validate = "pynwb.validation_cli:validation_cli"
  
  [tool.hatch.version]
  source = "vcs"
  
  [tool.hatch.build.hooks.vcs]
  # this file is created/updated when the package is installed and used in
  # src/pynwb/__init__.py to set `__version__` (from _version.py).
  version-file = "src/pynwb/_version.py"
  
  [tool.hatch.build.targets.sdist]
  exclude = [
      ".git*",
      ".codecov.yml",
      ".readthedocs.yaml",
  ]
  
  [tool.hatch.build.targets.wheel]
  packages = ["src/pynwb"]
  exclude = [
      ".git*",
      ".codecov.yml",
      ".readthedocs.yaml",
  ]
  
  [tool.codespell]
  skip = "htmlcov,.git,.mypy_cache,.pytest_cache,.coverage,*.pdf,*.svg,venvs,.tox,nwb-schema,./docs/_build/*,*.ipynb"
  ignore-words-list = "optin,potatos,assertin"
  
  [tool.coverage.run]
  branch = true
  source = ["pynwb"]
  
  [tool.coverage.report]
  exclude_lines = [
      "pragma: no cover",
      "@abstract"
  ]
  omit = [
      "*/pynwb/_due.py",
      "*/pynwb/testing/*",
      "*/pynwb/legacy/*"
  ]
  
  [tool.ruff]
  lint.select = ["E", "F", "T100", "T201", "T203"]
  exclude = [
    ".git",
    ".tox",
    "__pycache__",
    "build/",
    "dist/",
    "src/pynwb/nwb-schema",
    "docs/source/conf.py",
    "docs/notebooks/*",
    "src/pynwb/_due.py",
    "test.py" # remove when pytest comes along
  ]
  line-length = 120
  
  [tool.ruff.lint.per-file-ignores]
  "tests/read_dandi/*" = ["T201"]
  "docs/gallery/*" = ["E402", "T201"]
  "src/*/__init__.py" = ["F401"]
  "src/pynwb/_version.py" = ["T201"]
  "src/pynwb/validation_cli.py" = ["T201"]
  "scripts/*" = ["T201"]
  
  # "test_gallery.py" = ["T201"] # Uncomment when test_gallery.py is created
  
  [tool.ruff.lint.mccabe]
  max-complexity = 17
  
  