content: [project]
  name = "metatensor"
  dynamic = ["version", "authors", "dependencies", "optional-dependencies"]
  
  readme = "README.md"
  license = "BSD-3-Clause"
  description = "Self-describing sparse tensor data format for atomistic machine learning and beyond"
  
  keywords = ["machine learning", "molecular modeling"]
  classifiers = [
      "Development Status :: 4 - Beta",
      "Intended Audience :: Science/Research",
      "Operating System :: POSIX",
      "Operating System :: MacOS :: MacOS X",
      "Operating System :: Microsoft :: Windows",
      "Programming Language :: Python",
      "Programming Language :: Python :: 3",
      "Topic :: Scientific/Engineering",
      "Topic :: Scientific/Engineering :: Bio-Informatics",
      "Topic :: Scientific/Engineering :: Chemistry",
      "Topic :: Scientific/Engineering :: Physics",
      "Topic :: Software Development :: Libraries",
      "Topic :: Software Development :: Libraries :: Python Modules",
  ]
  
  [project.urls]
  homepage = "https://docs.metatensor.org/"
  documentation = "https://docs.metatensor.org/"
  repository = "https://github.com/metatensor/metatensor"
  changelog = "https://docs.metatensor.org/latest/core/CHANGELOG.html"
  
  ### ======================================================================== ###
  
  [build-system]
  requires = [
      "setuptools >=77",
      "packaging >=23",
  ]
  build-backend = "setuptools.build_meta"
  
  [tool.setuptools]
  zip-safe = true
  packages = []
  
  ### ======================================================================== ###
  
  [tool.coverage.paths]
  # path remapping for coverage. `coverage` will map path matching the second
  # string to the first string.
  core = ["python/metatensor_core/", ".tox/*/lib/python*/site-packages/"]
  torch = ["python/metatensor_torch/", ".tox/*/lib/python*/site-packages/"]
  operations = ["python/metatensor_operations/", ".tox/*/lib/python*/site-packages/"]
  learn = ["python/metatensor_learn/", ".tox/*/lib/python*/site-packages/"]
  
  [tool.coverage.report]
  show_missing = true
  omit = ["documentation.py"]
  
  ### ======================================================================== ###
  
  [tool.pytest.ini_options]
  filterwarnings = [
      "error",
      # metatensor.torch.atomistic deprecation
      "ignore:`metatensor.torch.atomistic` now lives in `metatomic.torch`, please update your code",
      "ignore:`metatensor.torch.atomistic.io` now lives in `metatomic.torch.io`, please update your code",
      "ignore:`metatensor.torch.atomistic.ase_calculator` now lives in `metatomic.torch.ase_calculator`, please update your code",
  ]
  
  ### ======================================================================== ###
  
  [tool.ruff.lint]
  select = ["E", "F", "B", "I"]
  ignore = ["B018", "B904"]
  
  [tool.ruff.lint.isort]
  lines-after-imports = 2
  known-first-party = ["metatensor"]
  known-third-party = ["torch"]
  
  [tool.ruff.format]
  docstring-code-format = true
  
  ### ======================================================================== ###
  
  [tool.uv.pip]
  reinstall-package = [
      "metatensor-core",
      "metatensor-torch",
      "metatensor-operations",
      "metatensor-learn"
  ]
  