[project]
name = "@NAME@"
version = "0.1.0"
requires-python = ">=3.12"
dependencies = ["pydantic>=2,<3"]

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

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

[dependency-groups]
dev = ["poethepoet>=0.32", "pre-commit>=4", "pytest>=8", "ruff>=0.11", "ty>=0.0.1"]

[tool.poe.executor]
type = "virtualenv"
location = ".venv"

[tool.poe.tasks]
format = "ruff format ."
"check:lint" = "ruff check ."
"check:format" = "ruff format --check ."
"check:types" = "ty check"
check = ["check:lint", "check:format", "check:types"]
"fix:lint" = "ruff check --fix ."
fix = ["fix:lint", "format"]
test = "pytest"

[tool.ruff]
target-version = "py312"

[tool.ruff.lint]
select = ["E4", "E7", "E9", "F", "I", "UP", "B", "ANN", "D"]

[tool.ruff.lint.pydocstyle]
convention = "numpy"

[tool.pytest.ini_options]
testpaths = ["tests"]
