@@ -3,69 +3,84 @@ line-length = 120
33
44[lint ]
55select = [
6- " A" , # prevent using keywords that clobber python builtins
7- " ANN" , # flake8 annotations
8- " B" , # bugbear: security warnings
9- " BLE" , # blind exceptions
10- " C4" , # flake8-comprehensions
11- " C90" , # McCabe complexity
12- " COM" , # flake8-commas
13- " D" , # pydocstyle
14- " DJ" , # flake8-django
15- " E" , # pycodestylex
16- " E4" , " E7" , " E9" ,
17- " ERA" , # eradicate
18- " F" , # pyflakes
19- " FLY" , # flynt
20- " FURB" , # refurb
21- " I" , # isort
22- " ICN" , # flake8-import-conventions
23- " ISC" , # implicit string concatenation
24- " N" , # Pep* naming
25- " PERF" , # perflint
26- " PIE" , # flake8-pie
27- " PL" , # PyLint
28- " PT" , # flake8-pytest-style
29- " Q" , # flake8-quotes
30- " R" , # PyLint Refactor
31- " RET" , # flake8-return
32- " S" , # bandit,
33- " SIM" , # flake8-simplify
34- " T10" , # flake8-debugger
35- " T20" , # flake8-print
36- " TC" , # flake8-type-checking
37- " UP" , # pyupgrade
38- " W" , # pycodestyle warnings
39- " YTT" , # flake8 2020
6+ " ALL" ,
7+ # "A", # prevent using keywords that clobber python builtins
8+ # "ANN", # flake8 annotations
9+ # "B", # bugbear: security warnings
10+ # "BLE", # blind exceptions
11+ # "C4", # flake8-comprehensions
12+ # "C90", # McCabe complexity
13+ # "COM", # flake8-commas
14+ # "D", # pydocstyle
15+ # "DJ", # flake8-django
16+ # "E", # pycodestylex
17+ # "E4", "E7", "E9",
18+ # "ERA", # eradicate
19+ # "F", # pyflakes
20+ # "FLY", # flynt
21+ # "FURB", # refurb
22+ # "I", # isort
23+ # "ICN", # flake8-import-conventions
24+ # "ISC", # implicit string concatenation
25+ # "N", # Pep* naming
26+ # "PERF", # perflint
27+ # "PIE", # flake8-pie
28+ # "PL", # PyLint
29+ # "PT", # flake8-pytest-style
30+ # "Q", # flake8-quotes
31+ # "R", # PyLint Refactor
32+ # "RET", # flake8-return
33+ # "S", # bandit,
34+ # "SIM", # flake8-simplify
35+ # "T10", # flake8-debugger
36+ # "T20", # flake8-print
37+ # "TC", # flake8-type-checking
38+ # "UP", # pyupgrade
39+ # "W", # pycodestyle warnings
40+ # "YTT", # flake8 2020
4041]
4142extend-select = [" UP" , ]
4243ignore = [
43- " A005" , # Module `???` shadows a Python standard-library module
44- " ANN401" ,
45- " B904" , # raise-without-from-inside-except: syntax not compatible with py2
46- " COM812" ,
47- " D100" , # Missing docstring in public module
48- " D101" , # Missing docstring in public class
49- " D102" , # Missing docstring in public method
50- " D103" , # Missing docstring in public function
51- " D104" , # Missing docstring in public package
52- " D105" , # Missing docstring in magic method
53- " D106" , # Missing docstring in public nested class
54- " D107" , # Missing docstring in `__init__`
55- " D203" , # one-blank-line-before-class
56- " D212" , # multi-line-summary-first-line
57- " D213" , # multi-line-summary-second-line
58- " E731" , # lambda-assignment: lambdas are substential in maintenance of py2/3 codebase
59- " ISC001" , # conflicts with ruff format command
60- " RUF005" , # collection-literal-concatenation: syntax not compatible with py2
61- " RUF012" , # mutable-class-default: typing is not available for py2
62- " I001" , # unsorted imports https://docs.astral.sh/ruff/rules/unsorted-imports/#unsorted-imports-i001
63- " UP037" , # [*] Remove quotes from type annotation
64- " UP035" , # Import from `collections.abc` instead: `Sequence`
65- " UP031" , # Use format specifiers instead of percent format
66- " SIM108" , # Use ternary operator instead of...
67- " PLR2004" , # Magic value used in comparison
68- " DJ001" , # Avoid using `null=True` on string-based fields such as `CharField`
44+ " A005" , # Module `???` shadows a Python standard-library module
45+ " ARG001" , # Unused function argument
46+ " ARG002" , # Unused method argument
47+ " ARG005" , # Unused lambda argument:
48+ " ANN401" ,
49+ " B904" , # raise-without-from-inside-except: syntax not compatible with py2
50+ " COM812" ,
51+ " D100" , # Missing docstring in public module
52+ " D101" , # Missing docstring in public class
53+ " D102" , # Missing docstring in public method
54+ " D103" , # Missing docstring in public function
55+ " D104" , # Missing docstring in public package
56+ " D105" , # Missing docstring in magic method
57+ " D106" , # Missing docstring in public nested class
58+ " D107" , # Missing docstring in `__init__`
59+ " D203" , # one-blank-line-before-class
60+ " D212" , # multi-line-summary-first-line
61+ " D213" , # multi-line-summary-second-line
62+ " DJ001" , # Avoid using `null=True` on string-based fields such as `CharField`
63+ " E731" , # lambda-assignment: lambdas are substential in maintenance of py2/3 codebase
64+ " EM101" , # Exception must not use a string literal, assign to variable first
65+ " EM102" , # Exception must not use an f-string literal, assign to variable first
66+ " FBT001" , # Boolean-typed positional argument in function definition
67+ " FBT002" , # Boolean default positional argument in function definition
68+ " FBT003" , # Boolean positional value in function call
69+ " FIX002" , # Line contains TODO, consider resolving the issue
70+ " I001" , # unsorted imports https://docs.astral.sh/ruff/rules/unsorted-imports/#unsorted-imports-i001
71+ " ISC001" , # conflicts with ruff format command
72+ " PLR2004" , # Magic value used in comparison
73+ " RUF005" , # collection-literal-concatenation: syntax not compatible with py2
74+ " RUF012" , # mutable-class-default: typing is not available for py2
75+ " SIM108" , # Use ternary operator instead of...
76+ " SLF001" , # Private member accessed:
77+ " TD003" , # Missing issue link for this TODO
78+ " TID252" , # Prefer absolute imports over relative imports from parent modules
79+ " TRY401" , # Redundant exception object included in `logging.exception` call
80+ " TRY003" , # Avoid specifying long messages outside the exception class
81+ " UP031" , # Use format specifiers instead of percent format
82+ " UP035" , # Import from `collections.abc` instead: `Sequence`
83+ " UP037" , # [*] Remove quotes from type annotation
6984]
7085
7186[format ]
@@ -84,10 +99,10 @@ known-first-party = ['country_workspace']
8499no-sections = false
85100lines-after-imports = 1
86101relative-imports-order = " furthest-to-closest"
87- section-order = [" future" , " standard-library" , " third-party" , " first-party" , " local-folder" ,]
102+ section-order = [" future" , " standard-library" , " third-party" , " first-party" , " local-folder" , ]
88103
89104
90105[lint .per-file-ignores ]
91- "tests/**.py" = [" S101" , " PLR2004" , " S" , " SIM117" , " D" , " UP" , " PLR0913" , " ANN" , " N999" ]
106+ "tests/**.py" = [" S101" , " PGH004 " , " TRY002 " , " TRY " , " PYI024 " , " PD901 " , " INP001 " , " PLR2004" , " S" , " SIM117" , " D" , " UP" , " PLR0913" , " ANN" , " N999" ]
92107"src/**/versioning/**.py" = [" N999" , ]
93108"src/**/migrations/**.py" = [" E501" , ]
0 commit comments