content: [build-system]
  requires = ["setuptools>=61.0", "versioneer[toml]"]
  build-backend = "setuptools.build_meta"
  
  
  [project]
  name = "pyrolite"
  authors = [{ name = "Morgan Williams", email = "morgan.williams@csiro.au" }]
  description = "Tools for geochemical data analysis."
  license = { file = "LICENSE" }
  requires-python = ">=3.8"
  classifiers = [
      "Development Status :: 4 - Beta",
      "Intended Audience :: Science/Research",
      "Intended Audience :: Education",
      "Natural Language :: English",
      "Programming Language :: Python :: 3 :: Only",
      "Programming Language :: Python :: 3.8",
      "Programming Language :: Python :: 3.9",
      "Programming Language :: Python :: 3.10",
      "Programming Language :: Python :: 3.11",
      "Programming Language :: Python :: 3.12",
      "Framework :: Matplotlib",
      "Topic :: Scientific/Engineering",
      "Topic :: Software Development :: Libraries :: Python Modules",
  ]
  keywords = ["geochemistry", "compositional data", "visualisation", "petrology"]
  dynamic = ["version", "readme"]
  dependencies = [
      "numpy",
      "numpydoc",
      "tinydb>4.1",     # >4.1 required for read-only access mode for JSON storage
      "periodictable",
      "matplotlib<3.9",
      "mpltern>=0.4.0",
      "scipy>=1.2",     # uses scipy.optimize.Bounds, added around 1.2
      "sympy>=1.7",
      "pandas>=1.0",    # dataframe acccessors, attrs attribute
      "requests",       # used by alphaMELTS utilities,  util.web
  ]
  
  [project.urls]
  Issues = "https://github.com/morganjwilliams/pyrolite/issues"
  Documentation = "https://pyrolite.readthedocs.io/"
  Repository = "https://github.com/morganjwilliams/pyrolite"
  Changelog = "https://github.com/me/spam/blob/master/CHANGELOG.md"
  
  [project.optional-dependencies]
  docs = [
      "sphinx_rtd_theme",
      "docutils<0.17",
      "sphinx>=4",
      "sphinx-autodoc-annotation",
      "sphinx_gallery>=0.6.0",
      "recommonmark",
      # "jupyterlite-sphinx",
      # "jupyterlite-pyodide-kernel",
  ]
  db = ["pyodbc", "psycopg2"]
  test = ["pytest", "pytest-runner", "pytest-cov", "coverage", "coveralls"]
  skl = ["scikit-learn", "joblib"]
  spatial = ["owslib", "geojson", "psutil"]
  stats = ["statsmodels", "scikit-learn"] # statsmodels for conditional ke
  excel = ["xlrd", "openpyxl"]
  dev = [
      "pytest",
      "versioneer",
      "black",
      "isort",
      "twine",
      "pyrolite[test,docs,skl]",
      "build",
  ]
  
  [tool.setuptools.packages]
  find = { exclude = ['test*', "docs*"] } # "**/__pycache__/*"
  #  include = ["Aitchison/*.py"],
  
  [tool.setuptools.dynamic]
  readme = { file = "README.md", content-type = "text/markdown" }
  
  [tool.coverage.run]
  relative_files = true
  source = ["pyrolite"]
  omit = [
      "test/*",                    # Omit test, docs, draft and data files
      "docs/*",
      "**/data",
      "draft/*",
      "pyrolite/util/database.py", # Omit extensions with extra dependencies
      "*/_version.py",             # Ignore _version.py
  ]
  
  [tool.versioneer]
  VCS = "git"
  style = "pep440"
  versionfile_source = "pyrolite/_version.py"
  versionfile_build = "pyrolite/_version.py"
  tag_prefix = ""
  parentdir_prefix = "pyrolite-"
  
  [tool.pytest.ini_options]
  python_files = "*.py"
  addopts = "--cov=pyrolite --cov-report html --cov-report xml --cov-report term-missing"
  testpaths = ["test"]
  pythonpath = ["."]
  