target-version = "py313" line-length = 88 [lint] # Syntax, import hygiene and concrete failure modes. Ruff's formatter owns the # whitespace rules; import sorting is enforced explicitly. select = ["E4", "E7", "E9", "F", "I", "C901", "S110"] [lint.mccabe] max-complexity = 25 [lint.per-file-ignores] # Standalone Django utilities must initialize the app registry before importing # project models, so those imports intentionally follow django.setup(). "scripts/**/*.py" = ["E402"]