[build-system]
requires = ["hatchling>=1.20"]
build-backend = "hatchling.build"

[project]
name = "caltib"
version = "0.3.0"
description = "Tibetan calendar toolkit (traditional + reform engines)."
readme = "README.md"
requires-python = ">=3.9"
license = {file = "LICENSE"}
authors = [{name = "caltib contributors"}]
dependencies = []

[project.optional-dependencies]
# The ultimate bundle
full = ["caltib[tools,ephemeris]"]

# For the design and diagnostics laboratory
tools = ["numpy>=1.24", "matplotlib>=3.8", "scipy>=1.10"]

# For JPL DE422 numerical integration and the L6 engine
ephemeris = ["skyfield>=1.45", "jplephem>=2.21"]

dev = ["pytest>=8", "ruff>=0.4", "mypy>=1.8", "build>=1.2", "twine>=5"]

[project.scripts]
caltib = "caltib.cli:main"

[tool.hatch.build.targets.wheel]
packages = ["src/caltib"]

[tool.hatch.build.targets.wheel.force-include]
"src/caltib/reference/data/deltat_iers_monthly.csv" = "caltib/reference/data/deltat_iers_monthly.csv"

[tool.hatch.build.targets.sdist]
exclude = [
  "/*.png",
  "/*.jpg",
  "/*.pdf",
  "/*.csv",    # Ignores CSVs only in the root directory
  "/tests",    # Optional: exclude the tests folder from the end-user download
  "/output"    # Standard output folder
]
