ruff.toml
1 target-version = "py39" 2 line-length = 120 3 4 [lint] 5 exclude = [ 6 "tests/fixtures/*.py", 7 ] 8 select = [ 9 "A", "ANN", "ARG", 10 "B", "BLE", 11 "C", "C4", 12 "COM", 13 "D", "DTZ", 14 "E", "ERA", "EXE", 15 "F", "FBT", 16 "G", 17 "I", "ICN", "INP", "ISC", 18 "N", 19 "PGH", "PIE", "PL", "PLC", "PLE", "PLR", "PLW", "PT", "PYI", 20 "Q", 21 "RUF", "RSE", "RET", 22 "S", "SIM", "SLF", 23 "T", "T10", "T20", "TCH", "TID", "TRY", 24 "UP", 25 "W", 26 "YTT", 27 ] 28 ignore = [ 29 "A001", # Variable is shadowing a Python builtin 30 "ANN101", # Missing type annotation for self 31 "ANN102", # Missing type annotation for cls 32 "ANN204", # Missing return type annotation for special method __str__ 33 "ANN401", # Dynamically typed expressions (typing.Any) are disallowed 34 "ARG005", # Unused lambda argument 35 "C901", # Too complex 36 "D105", # Missing docstring in magic method 37 "D417", # Missing argument description in the docstring 38 "E501", # Line too long 39 "ERA001", # Commented out code 40 "G004", # Logging statement uses f-string 41 "PLR0911", # Too many return statements 42 "PLR0912", # Too many branches 43 "PLR0913", # Too many arguments to function call 44 "PLR0915", # Too many statements 45 "SLF001", # Private member accessed 46 "TRY003", # Avoid specifying long messages outside the exception class 47 ] 48 49 [lint.per-file-ignores] 50 "src/**/cli.py" = [ 51 "T201", # Print statement 52 ] 53 "src/*/debug.py" = [ 54 "T201", # Print statement 55 ] 56 "!src/*/*.py" = [ 57 "D100", # Missing docstring in public module 58 ] 59 "!src/**.py" = [ 60 "D101", # Missing docstring in public class 61 "D103", # Missing docstring in public function 62 ] 63 "scripts/*.py" = [ 64 "INP001", # File is part of an implicit namespace package 65 "T201", # Print statement 66 ] 67 "tests/**.py" = [ 68 "ARG005", # Unused lambda argument 69 "FBT001", # Boolean positional arg in function definition 70 "PLR2004", # Magic value used in comparison 71 "S101", # Use of assert detected 72 ] 73 74 [lint.flake8-quotes] 75 docstring-quotes = "double" 76 77 [lint.flake8-tidy-imports] 78 ban-relative-imports = "all" 79 80 [lint.isort] 81 known-first-party = ["griffe_typedoc"] 82 83 [lint.pydocstyle] 84 convention = "google" 85 86 [format] 87 exclude = [ 88 "tests/fixtures/*.py", 89 ] 90 docstring-code-format = true 91 docstring-code-line-length = 80