[project] name = "system_tools" version = "0.1.0" description = "" authors = [{ name = "Richie Cahill", email = "richie@tmmworkshop.com" }] requires-python = "~=3.13.0" readme = "README.md" license = "MIT" # these dependencies are a best effort and aren't guaranteed to work # for up-to-date dependencies, see overlays/default.nix dependencies = [ "alembic", "apprise", "apscheduler", "httpx", "python-multipart", "polars", "psycopg[binary]", "pydantic", "pyyaml", "sqlalchemy", "typer", "websockets", ] [project.scripts] database = "python.database_cli:app" van-inventory = "python.van_inventory.main:serve" [dependency-groups] dev = [ "mypy", "pyfakefs", "pytest-cov", "pytest-mock", "pytest-xdist", "pytest", "ruff", ] [tool.ruff] target-version = "py313" line-length = 120 lint.select = ["ALL"] lint.ignore = [ "G004", # (PERM) This is a performers nit "COM812", # (TEMP) conflicts when used with the formatter "ISC001", # (TEMP) conflicts when used with the formatter "S603", # (PERM) This is known to cause a false positive ] [tool.ruff.lint.per-file-ignores] "tests/**" = [ "ANN", # (perm) type annotations not needed in tests "D", # (perm) docstrings not needed in tests "PLR2004", # (perm) magic values are fine in test assertions "S101", # (perm) pytest needs asserts ] "python/stuff/**" = [ "T201", # (perm) I don't care about print statements dir ] "python/testing/**" = [ "T201", # (perm) I don't care about print statements dir "ERA001", # (perm) I don't care about print statements dir ] "python/splendor/**" = [ "S311", # (perm) there is no security issue here "T201", # (perm) I don't care about print statements dir "PLR2004", # (temps) need to think about this ] "python/orm/**" = [ "TC003", # (perm) this creates issues because sqlalchemy uses these at runtime ] "python/congress_tracker/**" = [ "TC003", # (perm) this creates issues because sqlalchemy uses these at runtime ] "python/eval_warnings/**" = [ "S607", # (perm) gh and git are expected on PATH in the runner environment ] "python/alembic/**" = [ "INP001", # (perm) this creates LSP issues for alembic ] "python/signal_bot/**" = [ "D107", # (perm) class docstrings cover __init__ ] [tool.ruff.lint.pydocstyle] convention = "google" [tool.ruff.lint.flake8-builtins] builtins-ignorelist = ["id"] [tool.ruff.lint.pylint] max-args = 9 [tool.coverage.run] source = ["system_tools"] [tool.coverage.report] exclude_lines = [ "pragma: no cover", "if TYPE_CHECKING:", "raise NotImplementedError", "if __name__ == \"__main__\":", ] [tool.pytest.ini_options] addopts = "-n auto -ra" testpaths = ["tests"] # --cov=system_tools --cov-report=term-missing --cov-report=xml --cov-report=html --cov-branch