[tool.ruff] target-version = "py312" [tool.ruff.lint] # Fail CI for parse errors and undefined names. Broader style cleanup is tracked # separately because the existing codebase has a substantial legacy backlog. select = ["E9", "F63", "F7", "F82"] [tool.ruff.lint.per-file-ignores] # SQLAlchemy resolves these relationship targets from strings after model import. "app/models/*.py" = ["F821"]