[build-system] requires = ["hatchling"] build-backend = "hatchling.build" [project] name = "triggershell" version = "0.1.0" description = "CLI launcher for the TriggerShell web app - run configured shell scripts from a browser." readme = "README.md" requires-python = ">=3.9" license = "MIT" authors = [{ name = "TriggerShell contributors" }] dependencies = ["typer>=0.12", "rich>=13.7", "pyyaml>=6.0", "argon2-cffi>=23.1"] [project.scripts] triggershell = "triggershell.cli:app" [tool.hatch.build.targets.wheel] packages = ["triggershell"] [tool.hatch.build.targets.wheel.force-include] "app" = "triggershell/_app" [tool.hatch.build.targets.sdist] include = ["triggershell", "app", "README.md"] exclude = ["app/node_modules", "app/.next", "app/drizzle.config.ts.bak"] [tool.ruff] line-length = 120 target-version = "py39" [tool.ruff.lint] select = ["E", "F", "I", "UP", "B"] # B008: typer's `= typer.Option(...)` / `= typer.Argument(...)` defaults are the intended API, not a bug. # UP045: `X | None` needs 3.10 at runtime for typer's introspection; this project targets 3.9+. ignore = ["B008", "UP045"] [dependency-groups] dev = ["ruff>=0.6", "pytest>=8.0"]