[project]
name = "flupdt"
version = "0.1.0"
description = "Nix flake update diff checker. Useful for validating and diffing flakes after updates. Short for fl(ake) up(date) d(iff)."
authors = [{ name = "Alice Huston", email = "aliceghuston@gmail.com" }]
requires-python = ">=3.10"
readme = "README.md"
license = "MIT"
dependencies = ["sqlalchemy>=2.0.31,<3"]

[project.scripts]
flupdt = "flupdt.main:main"
flake-update-diff = "flupdt.main:main"

[dependency-groups]
dev = ["ruff>=0.8.6"]

[tool.hatch.build.targets.sdist]
include = ["flupdt"]

[tool.hatch.build.targets.wheel]
include = ["flupdt"]

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

[tool.ruff]

line-length = 100
indent-width = 4

target-version = "py312"

[tool.ruff.lint]
select = ["ALL"]
ignore = [
    "G004",   # (perm) this is a performance nit
    "COM812",  # https://docs.astral.sh/ruff/rules/missing-trailing-comma/
    "ISC001",  # https://docs.astral.sh/ruff/rules/single-line-implicit-string-concatenation/
]

[tool.ruff.lint.per-file-ignores]

"tests/**" = [
    "S101", # (perm) pytest needs asserts
]

fixable = ["ALL"]

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

[tool.ruff.lint.pycodestyle]
max-line-length = 120

[tool.ruff.lint.pylint]
max-args = 9