Files
pf1e-simulator/pyproject.toml
T

56 lines
1.8 KiB
TOML

[project]
name = "pf1e-simulator"
version = "0.1.0"
requires-python = ">=3.12"
dependencies = [
"pydantic>=2",
"pyyaml",
]
[build-system]
requires = ["hatchling"]
build-backend = "hatchling.build"
[tool.hatch.build.targets.wheel]
packages = ["src/pf1e_simulator"]
[dependency-groups]
dev = [
"pytest",
"ruff",
"basedpyright",
]
# ── Ruff ──────────────────────────────────────────────────────────────────────
[tool.ruff]
target-version = "py312"
line-length = 100
[tool.ruff.lint]
select = ["ALL"]
ignore = [
# D: docstring rules — we don't write docstrings everywhere in early scaffolding
"D",
# COM812: trailing-comma-in-missing — conflicts with ruff formatter
"COM812",
# ISC001: single-line-implicit-string-concatenation — conflicts with formatter
"ISC001",
# CPY001: missing copyright notice — we don't use copyright headers
"CPY001",
]
[tool.ruff.lint.per-file-ignores]
# Tests: assert is expected, magic numbers are fine, annotations are noisy
"tests/**" = ["S101", "PLR2004", "ANN"]
# rng.py: `random.Random` is used for reproducible Monte Carlo streams, not cryptography
"src/pf1e_simulator/rng.py" = ["S311"]
# ── Basedpyright ──────────────────────────────────────────────────────────────
[tool.basedpyright]
typeCheckingMode = "strict"
include = ["src", "tests"]
# ── Pytest ────────────────────────────────────────────────────────────────────
[tool.pytest.ini_options]
testpaths = ["tests"]