# Staged alignment (Phase 0-A): same rule families as parser where practical; broad ignores until debt is burned down. target-version = "py312" line-length = 99 src = ["backend", "scripts", "tests", "api.py", "app.py", "models.py", "ingest.py"] exclude = [ ".venv", "audit", "data", "deploy", "frontend", "node_modules", ] [lint] select = [ "E", "F", "W", "I", "D", "Q", "PL", "RET", "PT", "RUF", "COM", "ISC", "ICN", "YTT", "PGH", "B", "SIM", "PIE", "PERF", "C4", "UP", "DTZ", "PTH", "TCH", "TID", "SLF", "ARG", "S", "FURB", ] ignore = [ "E501", "B008", "B006", "TC001", "TC002", "TC003", "S101", "D100", "D101", "D102", "D103", "D104", "D105", "D106", "D107", "PLR0911", "PLR0912", "PLR0913", "PLR0915", "PLR2004", "PLR6301", "PLW0603", "PLW2901", "ARG001", "ARG002", "PTH123", "SIM102", "SIM108", "SIM117", "TID252", ] [lint.per-file-ignores] "tests/**/*.py" = ["SLF001", "PT011", "PLR2004"] [lint.pylint] max-args = 25 max-branches = 45 max-returns = 10 max-statements = 200 [lint.isort] known-first-party = ["backend", "models"] [lint.flake8-quotes] docstring-quotes = "double" inline-quotes = "double" [lint.pydocstyle] convention = "google"