content: [project]
  name = "lineshape_tools"
  description = "Software to evaluate the optical lineshape function of a defect."
  authors = [
      {name = "Mark E. Turiansky", email = "mark.e.turiansky.ctr@us.navy.mil"},
  ]
  dependencies = [
      "mace-torch>=0.3.10",
      "numpy>=1.26.4",
      "numba>=0.61.0",
      "rocket-fft>=0.2.5",
      "cyclopts>=3.16.1",
      "ase>=3.25.0",
      "scipy>=1.15.3",
      "tqdm>=4.67.1"
  ]
  requires-python = ">=3.10,<3.14"
  readme = "README.md"
  license = {text = "MIT"}
  dynamic = ["version"]
  keywords = ["defect", "luminescence", "absorption", "electron-phonon coupling", "density functional theory"]
  classifiers = [
      "Topic :: Scientific/Engineering",
      "Topic :: Scientific/Engineering :: Physics",
      "License :: OSI Approved :: MIT License",
      "Programming Language :: Python :: 3",
      "Programming Language :: Python :: 3.10",
      "Programming Language :: Python :: 3.11",
      "Programming Language :: Python :: 3.12",
      "Programming Language :: Python :: 3.13",
  ]
  
  [project.urls]
  Homepage = "https://github.com/mturiansky/lineshape_tools"
  Documentation = "https://lineshape_tools.readthedocs.io/en/latest"
  Repository = "https://github.com/mturiansky/lineshape_tools.git"
  Issues = "https://github.com/mturiansky/lineshape_tools/issues"
  
  [build-system]
  requires = ["pdm-backend"]
  build-backend = "pdm.backend"
  
  [project.scripts]
  lineshape_tools = "lineshape_tools.__main__:app.meta"
  
  [project.optional-dependencies]
  extra = [
      "phonopy>=2.42.0",
      "matplotlib>=3.10.5",
  ]
  
  
  [dependency-groups]
  dev = [
      "pytest>=8.3.4",
      "mypy>=1.15.0",
      "ruff>=0.9.4",
      "pytest-cov>=6.2.1",
      "pytest-mock>=3.14.1",
      "pytest-skip-slow>=0.0.5",
  ]
  docs = [
      "sphinx>=8.1.3",
      "furo>=2024.8.6",
      "sphinx-autoapi>=3.6.0",
      "myst-parser>=4.0.1",
      "sphinx-copybutton>=0.5.2",
  ]
  
  [tool.ruff]
  line-length = 99
  
  [tool.ruff.lint]
  select = ["A", "B", "D", "E", "F", "I", "NPY", "PL", "UP", "W"]
  ignore = ["PLR", "D100", "D101", "D104", "E731", "NPY201", "PLC0415"]
  
  [tool.ruff.lint.per-file-ignores]
  "tests/**.py" = ["D102", "D103", "D107"]
  
  [tool.ruff.lint.pydocstyle]
  convention = "google"
  
  [tool.mypy]
  ignore_missing_imports = true
  
  [tool.pdm]
  distribution = true
  
  [tool.pdm.version]
  source = "file"
  path = "src/lineshape_tools/__init__.py"
  
  [tool.pytest.ini_options]
  addopts = ["--import-mode=importlib"]
  testpaths = ["tests"]
  