prospector 1.15.2__tar.gz → 1.15.4a1__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (74) hide show
  1. {prospector-1.15.2 → prospector-1.15.4a1}/PKG-INFO +16 -19
  2. {prospector-1.15.2 → prospector-1.15.4a1}/prospector/autodetect.py +1 -1
  3. {prospector-1.15.2 → prospector-1.15.4a1}/prospector/blender_combinations.yaml +148 -81
  4. {prospector-1.15.2 → prospector-1.15.4a1}/prospector/config/configuration.py +1 -1
  5. prospector-1.15.4a1/prospector/formatters/base_summary.py +90 -0
  6. {prospector-1.15.2 → prospector-1.15.4a1}/prospector/formatters/pylint.py +17 -12
  7. {prospector-1.15.2 → prospector-1.15.4a1}/prospector/formatters/text.py +3 -0
  8. prospector-1.15.4a1/prospector/identify.py +90 -0
  9. {prospector-1.15.2 → prospector-1.15.4a1}/prospector/pathutils.py +16 -2
  10. {prospector-1.15.2 → prospector-1.15.4a1}/prospector/profiles/profile.py +5 -2
  11. {prospector-1.15.2 → prospector-1.15.4a1}/prospector/suppression.py +2 -2
  12. {prospector-1.15.2 → prospector-1.15.4a1}/prospector/tools/base.py +2 -2
  13. {prospector-1.15.2 → prospector-1.15.4a1}/prospector/tools/mypy/__init__.py +2 -2
  14. {prospector-1.15.2 → prospector-1.15.4a1}/prospector/tools/profile_validator/__init__.py +1 -1
  15. {prospector-1.15.2 → prospector-1.15.4a1}/prospector/tools/pylint/__init__.py +6 -4
  16. {prospector-1.15.2 → prospector-1.15.4a1}/prospector/tools/ruff/__init__.py +2 -2
  17. {prospector-1.15.2 → prospector-1.15.4a1}/pyproject.toml +1 -2
  18. prospector-1.15.2/prospector/formatters/base_summary.py +0 -43
  19. prospector-1.15.2/setup.py +0 -81
  20. {prospector-1.15.2 → prospector-1.15.4a1}/LICENSE +0 -0
  21. {prospector-1.15.2 → prospector-1.15.4a1}/README.rst +0 -0
  22. {prospector-1.15.2 → prospector-1.15.4a1}/prospector/__init__.py +0 -0
  23. {prospector-1.15.2 → prospector-1.15.4a1}/prospector/__main__.py +0 -0
  24. {prospector-1.15.2 → prospector-1.15.4a1}/prospector/blender.py +0 -0
  25. {prospector-1.15.2 → prospector-1.15.4a1}/prospector/compat.py +0 -0
  26. {prospector-1.15.2 → prospector-1.15.4a1}/prospector/config/__init__.py +0 -0
  27. {prospector-1.15.2 → prospector-1.15.4a1}/prospector/config/datatype.py +0 -0
  28. {prospector-1.15.2 → prospector-1.15.4a1}/prospector/encoding.py +0 -0
  29. {prospector-1.15.2 → prospector-1.15.4a1}/prospector/exceptions.py +0 -0
  30. {prospector-1.15.2 → prospector-1.15.4a1}/prospector/finder.py +0 -0
  31. {prospector-1.15.2 → prospector-1.15.4a1}/prospector/formatters/__init__.py +0 -0
  32. {prospector-1.15.2 → prospector-1.15.4a1}/prospector/formatters/base.py +0 -0
  33. {prospector-1.15.2 → prospector-1.15.4a1}/prospector/formatters/emacs.py +0 -0
  34. {prospector-1.15.2 → prospector-1.15.4a1}/prospector/formatters/grouped.py +0 -0
  35. {prospector-1.15.2 → prospector-1.15.4a1}/prospector/formatters/json.py +0 -0
  36. {prospector-1.15.2 → prospector-1.15.4a1}/prospector/formatters/pylint_parseable.py +0 -0
  37. {prospector-1.15.2 → prospector-1.15.4a1}/prospector/formatters/vscode.py +0 -0
  38. {prospector-1.15.2 → prospector-1.15.4a1}/prospector/formatters/xunit.py +0 -0
  39. {prospector-1.15.2 → prospector-1.15.4a1}/prospector/formatters/yaml.py +0 -0
  40. {prospector-1.15.2 → prospector-1.15.4a1}/prospector/message.py +0 -0
  41. {prospector-1.15.2 → prospector-1.15.4a1}/prospector/postfilter.py +0 -0
  42. {prospector-1.15.2 → prospector-1.15.4a1}/prospector/profiles/__init__.py +0 -0
  43. {prospector-1.15.2 → prospector-1.15.4a1}/prospector/profiles/exceptions.py +0 -0
  44. {prospector-1.15.2 → prospector-1.15.4a1}/prospector/profiles/profiles/default.yaml +0 -0
  45. {prospector-1.15.2 → prospector-1.15.4a1}/prospector/profiles/profiles/doc_warnings.yaml +0 -0
  46. {prospector-1.15.2 → prospector-1.15.4a1}/prospector/profiles/profiles/flake8.yaml +0 -0
  47. {prospector-1.15.2 → prospector-1.15.4a1}/prospector/profiles/profiles/full_pep8.yaml +0 -0
  48. {prospector-1.15.2 → prospector-1.15.4a1}/prospector/profiles/profiles/member_warnings.yaml +0 -0
  49. {prospector-1.15.2 → prospector-1.15.4a1}/prospector/profiles/profiles/no_doc_warnings.yaml +0 -0
  50. {prospector-1.15.2 → prospector-1.15.4a1}/prospector/profiles/profiles/no_member_warnings.yaml +0 -0
  51. {prospector-1.15.2 → prospector-1.15.4a1}/prospector/profiles/profiles/no_pep8.yaml +0 -0
  52. {prospector-1.15.2 → prospector-1.15.4a1}/prospector/profiles/profiles/no_test_warnings.yaml +0 -0
  53. {prospector-1.15.2 → prospector-1.15.4a1}/prospector/profiles/profiles/strictness_high.yaml +0 -0
  54. {prospector-1.15.2 → prospector-1.15.4a1}/prospector/profiles/profiles/strictness_low.yaml +0 -0
  55. {prospector-1.15.2 → prospector-1.15.4a1}/prospector/profiles/profiles/strictness_medium.yaml +0 -0
  56. {prospector-1.15.2 → prospector-1.15.4a1}/prospector/profiles/profiles/strictness_none.yaml +0 -0
  57. {prospector-1.15.2 → prospector-1.15.4a1}/prospector/profiles/profiles/strictness_veryhigh.yaml +0 -0
  58. {prospector-1.15.2 → prospector-1.15.4a1}/prospector/profiles/profiles/strictness_verylow.yaml +0 -0
  59. {prospector-1.15.2 → prospector-1.15.4a1}/prospector/profiles/profiles/test_warnings.yaml +0 -0
  60. {prospector-1.15.2 → prospector-1.15.4a1}/prospector/run.py +0 -0
  61. {prospector-1.15.2 → prospector-1.15.4a1}/prospector/tools/__init__.py +0 -0
  62. {prospector-1.15.2 → prospector-1.15.4a1}/prospector/tools/bandit/__init__.py +0 -0
  63. {prospector-1.15.2 → prospector-1.15.4a1}/prospector/tools/dodgy/__init__.py +0 -0
  64. {prospector-1.15.2 → prospector-1.15.4a1}/prospector/tools/exceptions.py +0 -0
  65. {prospector-1.15.2 → prospector-1.15.4a1}/prospector/tools/mccabe/__init__.py +0 -0
  66. {prospector-1.15.2 → prospector-1.15.4a1}/prospector/tools/pycodestyle/__init__.py +0 -0
  67. {prospector-1.15.2 → prospector-1.15.4a1}/prospector/tools/pydocstyle/__init__.py +0 -0
  68. {prospector-1.15.2 → prospector-1.15.4a1}/prospector/tools/pyflakes/__init__.py +0 -0
  69. {prospector-1.15.2 → prospector-1.15.4a1}/prospector/tools/pylint/collector.py +0 -0
  70. {prospector-1.15.2 → prospector-1.15.4a1}/prospector/tools/pylint/linter.py +0 -0
  71. {prospector-1.15.2 → prospector-1.15.4a1}/prospector/tools/pyright/__init__.py +0 -0
  72. {prospector-1.15.2 → prospector-1.15.4a1}/prospector/tools/pyroma/__init__.py +0 -0
  73. {prospector-1.15.2 → prospector-1.15.4a1}/prospector/tools/utils.py +0 -0
  74. {prospector-1.15.2 → prospector-1.15.4a1}/prospector/tools/vulture/__init__.py +0 -0
@@ -1,8 +1,7 @@
1
- Metadata-Version: 2.1
1
+ Metadata-Version: 2.3
2
2
  Name: prospector
3
- Version: 1.15.2
3
+ Version: 1.15.4a1
4
4
  Summary: Prospector is a tool to analyse Python code by aggregating the result of other tools.
5
- Home-page: http://prospector.readthedocs.io
6
5
  License: GPLv2+
7
6
  Keywords: pylint,prospector,static code analysis
8
7
  Author: Carl Crowder
@@ -19,25 +18,23 @@ Classifier: Operating System :: Unix
19
18
  Classifier: Programming Language :: Python :: 3
20
19
  Classifier: Programming Language :: Python :: 3.9
21
20
  Classifier: Programming Language :: Python :: 3.10
22
- Classifier: Programming Language :: Python :: 3.10
23
21
  Classifier: Programming Language :: Python :: 3.11
24
22
  Classifier: Programming Language :: Python :: 3.12
25
23
  Classifier: Programming Language :: Python :: 3.13
26
- Classifier: Programming Language :: Python :: 3.9
27
24
  Classifier: Topic :: Software Development :: Quality Assurance
28
- Provides-Extra: with_bandit
29
- Provides-Extra: with_everything
30
- Provides-Extra: with_mypy
31
- Provides-Extra: with_pyright
32
- Provides-Extra: with_pyroma
33
- Provides-Extra: with_ruff
34
- Provides-Extra: with_vulture
25
+ Provides-Extra: with-bandit
26
+ Provides-Extra: with-everything
27
+ Provides-Extra: with-mypy
28
+ Provides-Extra: with-pyright
29
+ Provides-Extra: with-pyroma
30
+ Provides-Extra: with-ruff
31
+ Provides-Extra: with-vulture
35
32
  Requires-Dist: GitPython (>=3.1.27,<4.0.0)
36
33
  Requires-Dist: PyYAML
37
- Requires-Dist: bandit (>=1.5.1); extra == "with_bandit" or extra == "with_everything"
34
+ Requires-Dist: bandit (>=1.5.1) ; extra == "with-bandit" or extra == "with-everything"
38
35
  Requires-Dist: dodgy (>=0.2.1,<0.3.0)
39
36
  Requires-Dist: mccabe (>=0.7.0,<0.8.0)
40
- Requires-Dist: mypy (>=0.600); extra == "with_mypy" or extra == "with_everything"
37
+ Requires-Dist: mypy (>=0.600) ; extra == "with-mypy" or extra == "with-everything"
41
38
  Requires-Dist: packaging
42
39
  Requires-Dist: pep8-naming (>=0.3.3,<=0.10.0)
43
40
  Requires-Dist: pycodestyle (>=2.9.0)
@@ -46,14 +43,14 @@ Requires-Dist: pyflakes (>=2.2.0)
46
43
  Requires-Dist: pylint (>=3.0)
47
44
  Requires-Dist: pylint-celery (==0.3)
48
45
  Requires-Dist: pylint-django (>=2.6.1)
49
- Requires-Dist: pylint-flask (==0.6)
50
- Requires-Dist: pyright (>=1.1.3); extra == "with_pyright" or extra == "with_everything"
51
- Requires-Dist: pyroma (>=2.4); extra == "with_pyroma" or extra == "with_everything"
46
+ Requires-Dist: pyright (>=1.1.3) ; extra == "with-pyright" or extra == "with-everything"
47
+ Requires-Dist: pyroma (>=2.4) ; extra == "with-pyroma" or extra == "with-everything"
52
48
  Requires-Dist: requirements-detector (>=1.3.2)
53
- Requires-Dist: ruff; extra == "with_ruff" or extra == "with_everything"
49
+ Requires-Dist: ruff ; extra == "with-ruff" or extra == "with-everything"
54
50
  Requires-Dist: setoptconf-tmp (>=0.3.1,<0.4.0)
55
51
  Requires-Dist: toml (>=0.10.2,<0.11.0)
56
- Requires-Dist: vulture (>=1.5); extra == "with_vulture" or extra == "with_everything"
52
+ Requires-Dist: vulture (>=1.5) ; extra == "with-vulture" or extra == "with-everything"
53
+ Project-URL: Homepage, http://prospector.readthedocs.io
57
54
  Project-URL: Repository, https://github.com/PyCQA/prospector
58
55
  Description-Content-Type: text/x-rst
59
56
 
@@ -11,7 +11,7 @@ from prospector import encoding
11
11
  from prospector.exceptions import PermissionMissing
12
12
  from prospector.pathutils import is_virtualenv
13
13
 
14
- POSSIBLE_LIBRARIES = ("django", "celery", "flask")
14
+ POSSIBLE_LIBRARIES = ("django", "celery")
15
15
 
16
16
 
17
17
  # see http://docs.python.org/2/reference/lexical_analysis.html#identifiers
@@ -4,17 +4,22 @@
4
4
  #
5
5
  # Note that since not all tools will necessarily be run, the first message for
6
6
  # a line as sorted by the code list will be the one remaining after blending.
7
+ #
8
+ # We put at first the PyLint, mypy and Ruff codes because we can
9
+ # ignore a specific code on a specific line.
7
10
 
8
11
  combinations:
9
12
  - # Unused Import
10
13
  - pylint: unused-import
14
+ - pylint: W0611
15
+ - ruff: F401
11
16
  - pyflakes: F401
12
17
  - frosted: E101
13
- - ruff: F401
14
18
 
15
19
  - # Syntax Error
16
- - dodgy: diff
17
20
  - pylint: syntax-error
21
+ - pylint: E0001
22
+ - dodgy: diff
18
23
  - pyflakes: F999
19
24
  - pep8: E901
20
25
  # expected an indented block
@@ -26,362 +31,416 @@ combinations:
26
31
 
27
32
  - # Undefined local variable
28
33
  - pylint: undefined-variable
34
+ - pylint: E0602
35
+ - mypy: name-defined
36
+ - ruff: F821
29
37
  - pyflakes: F821
30
38
  - frosted: E303
31
- - ruff: F821
32
- - mypy: name-defined
33
39
 
34
40
  - # Unused variable
35
41
  - pylint: unused-variable
42
+ - pylint: W0612
43
+ - ruff: F841
36
44
  - vulture: unused-variable
37
45
  - pyflakes: F841
38
46
  - frosted: E307
39
- - ruff: F841
40
47
 
41
48
  - # Mixed tabs and spaces
49
+ - pylint: indentation-mixture
50
+ - ruff: D206
42
51
  - pep257: D206
43
52
  - pydocstyle: D206
44
53
  - pep8: E101
45
54
  - pycodestyle: E101
46
- - pylint: indentation-mixture
47
- - ruff: D206
48
55
 
49
56
  - # Import from __future__ not first import
50
57
  - pylint: misplaced-future
58
+ - pylint: W0410
59
+ - ruff: F404
51
60
  - pyflakes: F404
52
61
  - frosted: E207
53
- - ruff: F404
54
62
 
55
63
  - # Line too long
64
+ - pylint: line-too-long
65
+ - pylint: C0301
56
66
  - pep8: E501
57
67
  - pycodestyle: E501
58
- - pylint: line-too-long
59
68
 
60
69
  - # Trailing whitespace
70
+ - pylint: trailing-whitespace
71
+ - pylint: C0303
61
72
  - pep8: W291
62
73
  - pycodestyle: W291
63
- - pylint: trailing-whitespace
64
74
 
65
75
  - # Blank line contains whitespace
76
+ - pylint: trailing-whitespace
77
+ - pylint: C0303
66
78
  - pep8: W293
67
79
  - pycodestyle: W293
68
- - pylint: trailing-whitespace
69
80
 
70
81
  - # No newline at end of file
82
+ - pylint: missing-final-newline
83
+ - pylint: C0304
71
84
  - pep8: W292
72
85
  - pycodestyle: W292
73
- - pylint: missing-final-newline
74
86
 
75
87
  - # line ends with semi-colon
88
+ - pylint: unnecessary-semicolon
89
+ - pylint: W0301
76
90
  - pep8: E703
77
91
  - pycodestyle: E703
78
- - pylint: unnecessary-semicolon
79
92
 
80
93
  - # multiple statements on one line (colon)
94
+ - pylint: multiple-statements
95
+ - pylint: C0321
81
96
  - pep8: E701
82
97
  - pycodestyle: E701
83
- - pylint: multiple-statements
84
98
 
85
99
  - # multiple statements on one line (semicolon)
100
+ - pylint: multiple-statements
101
+ - pylint: C0321
86
102
  - pep8: E702
87
103
  - pycodestyle: E702
88
- - pylint: multiple-statements
89
104
 
90
105
  - # incorrect indentation
106
+ - pylint: bad-indentation
107
+ - pylint: W0311
108
+ - ruff: D207
91
109
  - pep257: D207
92
110
  - pydocstyle: D207
93
111
  - pep8: E111
94
112
  - pycodestyle: E111
95
- - pylint: bad-indentation
96
- - ruff: D207
97
113
 
98
114
  - # incorrect indentation
115
+ - pylint: bad-indentation
116
+ - pylint: W0311
117
+ - ruff: D208
99
118
  - pep257: D208
100
119
  - pydocstyle: D208
101
120
  - pep8: E111
102
121
  - pycodestyle: E111
103
- - pylint: bad-indentation
104
- - ruff: D208
105
122
 
106
123
  - # comma not followed by a space
107
- - pep8: E231
108
- - pycodestyle: E231
109
124
  - pylint: C0324
110
125
  - pylint: bad-whitespace
126
+ - pep8: E231
127
+ - pycodestyle: E231
111
128
 
112
129
  - # missing whitespace around operator
113
- - pep8: E225
114
- - pycodestyle: E225
115
130
  - pylint: C0322
116
131
  - pylint: bad-whitespace
117
-
118
- - # missing whitespace around operator
119
132
  - pep8: E225
120
133
  - pycodestyle: E225
134
+
135
+ - # missing whitespace around operator
121
136
  - pylint: C0323
122
137
  - pylint: bad-whitespace
138
+ - pep8: E225
139
+ - pycodestyle: E225
123
140
 
124
141
  - # undefined name in __all__
125
142
  - pylint: undefined-all-variable
143
+ - pylint: E0603
144
+ - ruff: F822
126
145
  - pyflakes: F822
127
146
  - frosted: E304
128
- - ruff: F822
129
147
 
130
148
  - # duplicate argument in function definition
131
149
  - pylint: duplicate-argument-name
150
+ - pylint: E0108
151
+ - ruff: F831
132
152
  - pyflakes: F831
133
153
  - frosted: E206
134
- - ruff: F831
135
154
 
136
155
  - # redefinition of unused function
137
- - pyflakes: F811
138
156
  - pylint: function-redefined
157
+ - pylint: E0102
139
158
  - ruff: F811
159
+ - pyflakes: F811
140
160
 
141
161
  - # f-string is missing placeholders
142
162
  - pylint: f-string-without-interpolation
143
- - pyflakes: F541
163
+ - pylint: W1309
144
164
  - ruff: F541
165
+ - pyflakes: F541
145
166
 
146
167
  - # Duplicate key in dictionary
147
168
  - pylint: duplicate-key
148
- - pyflakes: F601
169
+ - pylint: W0109
149
170
  - ruff: F601
171
+ - pyflakes: F601
150
172
 
151
173
  - # More than one starred expression in assignment
152
174
  - pylint: too-many-star-expressions
153
- - pyflakes: F622
175
+ - pylint: E0112
154
176
  - ruff: F622
177
+ - pyflakes: F622
155
178
 
156
179
  - # Assert called on a tuple
157
180
  - pylint: assert-on-tuple
158
- - pyflakes: F631
181
+ - pylint: W0199
159
182
  - ruff: F631
183
+ - pyflakes: F631
160
184
 
161
185
  - # 'break' outside loop
162
186
  - pylint: not-in-loop
163
- - pyflakes: F701
187
+ - pylint: E0103
164
188
  - ruff: F701
189
+ - pyflakes: F701
165
190
 
166
191
  - # 'continue' not properly in loop
167
192
  - pylint: not-in-loop
168
- - pyflakes: F702
193
+ - pylint: E0103
169
194
  - ruff: F702
195
+ - pyflakes: F702
170
196
 
171
197
  - # 'continue' not supported inside 'finally' clause
172
198
  - pylint: continue-in-finally
173
199
  - pylint: E0116
174
- - pyflakes: F703
175
200
  - ruff: F703
176
201
  - ruff: PLE0116
202
+ - pyflakes: F703
177
203
 
178
204
  - # Yield outside function
179
205
  - pylint: yield-outside-function
180
- - pyflakes: F704
206
+ - pylint: E0105
181
207
  - ruff: F704
208
+ - pyflakes: F704
182
209
 
183
210
  - # Return outside function
184
211
  - pylint: return-outside-function
185
- - pyflakes: F706
212
+ - pylint: E0104
186
213
  - ruff: F706
214
+ - pyflakes: F706
187
215
 
188
216
  - # default 'except:' must be last
189
217
  - pylint: bad-except-order
190
- - pyflakes: F707
218
+ - pylint: E0701
191
219
  - ruff: F707
220
+ - pyflakes: F707
192
221
 
193
222
  - # NotImplemented raised - should raise NotImplementedError
194
223
  - pylint: notimplemented-raised
195
- - pyflakes: F901
224
+ - pylint: E0711
196
225
  - ruff: F901
226
+ - pyflakes: F901
197
227
 
198
228
  - # first argument of a classmethod should be named 'cls'
199
- - pep8: N804
200
- - pycodestyle: N804
201
229
  - pylint: bad-classmethod-argument
230
+ - pylint: C0202
202
231
  - ruff: N804
232
+ - pep8: N804
233
+ - pycodestyle: N804
203
234
 
204
235
  - # '<>' is deprecated, use '!='
236
+ - pylint: W0331
205
237
  - pep8: W603
206
238
  - pycodestyle: W603
207
- - pylint: W0331
208
239
 
209
240
  - # backticks are deprecated, use 'repr()'
241
+ - pylint: W0333
210
242
  - pep8: W604
211
243
  - pycodestyle: W604
212
- - pylint: W0333
213
244
 
214
245
  - # Redefining name from outer scope
215
246
  - pylint: redefined-outer-name
247
+ - pylint: W0621
248
+ - ruff: F810
216
249
  - pyflakes: F810
217
250
  - frosted: E306
218
- - ruff: F810
219
251
 
220
252
  - # Redefinition of unused variable
221
253
  - pylint: redefined-outer-name
254
+ - pylint: W0621
222
255
  - pyflakes: F811
223
256
 
224
257
  - # Wildcard import
225
258
  - pylint: wildcard-import
259
+ - pylint: W0614
260
+ - ruff: F403
226
261
  - pyflakes: F403
227
262
  - frosted: E103
228
- - ruff: F403
229
263
 
230
264
  - # Return with argument inside generator
231
265
  - pylint: return-arg-in-generator
266
+ - pylint: E0110
232
267
  - frosted: E208
233
268
 
234
269
  - # Too many positional arguments for function call
235
270
  - pylint: too-many-function-args
271
+ - pylint: E1121
236
272
  - frosted: E203
237
273
 
238
274
  - # Passing unexpected keyword argument
239
275
  - pylint: unexpected-keyword-arg
276
+ - pylint: E1123
240
277
  - frosted: E204
241
278
 
242
279
  - # Missing mandatory keyword argument
243
280
  - pylint: missing-kwoa
281
+ - pylint: E1125
244
282
  - frosted: E205
245
283
 
246
284
  - # No exception type(s) specified
247
285
  - pylint: bare-except
248
- - frosted: W101
249
- - pep8: E722
250
- - pycodestyle: E722
286
+ - pylint: W0702
251
287
  - ruff: E722
252
288
  # try_except_pass
253
289
  - ruff: S110
290
+ - frosted: W101
291
+ - pep8: E722
292
+ - pycodestyle: E722
254
293
  - bandit: B110
255
294
 
256
295
  - # No exception type(s) specified
257
296
  - pylint: bare-except
258
- - frosted: W101
259
- - pep8: E722
260
- - pycodestyle: E722
297
+ - pylint: W0702
261
298
  - ruff: E722
262
299
  # try_except_continue
263
300
  - ruff: S112
301
+ - frosted: W101
302
+ - pep8: E722
303
+ - pycodestyle: E722
264
304
  - bandit: B112
265
305
 
266
306
  - # Do not catch blind exception: `Exception`
267
307
  - pylint: broad-exception-caught
308
+ - pylint: W0718
268
309
  - ruff: BLE001
269
310
 
311
+ - # Do not catch blind exception: `BaseException`
312
+ - pylint: broad-except
313
+ - pylint: W0703
314
+ - ruff: BLE002
315
+
270
316
  - # Create your own exception
271
317
  - pylint: broad-exception-raised
318
+ - pylint: W0719
272
319
  - ruff: TRY002
273
320
 
274
321
  - # Spaces around keyword/parameter equals
322
+ - pylint: bad-whitespace
275
323
  - pep8: E251
276
324
  - pycodestyle: E251
277
- - pylint: bad-whitespace
278
325
 
279
326
  - # Missing space after a comma
327
+ - pylint: bad-whitespace
280
328
  - pep8: E231
281
329
  - pycodestyle: E231
282
- - pylint: bad-whitespace
283
330
 
284
331
  - # redefinition of unused %r from line %r
332
+ - ruff: F811
285
333
  - pyflakes: F811
286
334
  - frosted: E301
287
- - ruff: F811
288
335
 
289
336
  - # list comprehension redefines %r from line %r
337
+ - ruff: F812
290
338
  - pyflakes: F812
291
339
  - frosted: E302
292
- - ruff: F812
293
340
 
294
341
  - # import %r from line %r shadowed by loop variable
342
+ - ruff: F402
295
343
  - pyflakes: F402
296
344
  - frosted: E102
297
- - ruff: F402
298
345
 
299
346
  - # syntax error in doctest
347
+ - ruff: FL0007
300
348
  - pyflakes: FL0007
301
349
  - frosted: E401
302
- - ruff: FL0007
303
350
 
304
351
  - # local variable %r referenced before assignment
352
+ - ruff: F823
305
353
  - pyflakes: F823
306
354
  - frosted: E305
307
- - ruff: F823
308
355
 
309
356
  - # pep8-naming incorrectly suggests that the first argument of a metaclass __new__ method should be 'cls'
310
357
  - pylint: bad-mcs-classmethod-argument
358
+ - pylint: C0204
311
359
  - pep8: N804
312
360
  - pycodestyle: N804
313
361
 
314
362
  - # class names should be camelcase
363
+ - pylint: invalid-name
364
+ - pylint: C0103
315
365
  - pep8: N801
316
366
  - pycodestyle: N801
317
- - pylint: invalid-name
318
367
 
319
- # function name should be lowercase
320
- - - pylint: invalid-name
368
+ - # function name should be lowercase
369
+ - pylint: invalid-name
370
+ - pylint: C0103
371
+ - ruff: N802
321
372
  - pep8: N802
322
373
  - pycodestyle: N802
323
- - ruff: N802
324
374
 
325
- # argument name should be lowercase
326
- - - pylint: invalid-name
375
+ - # argument name should be lowercase
376
+ - pylint: invalid-name
377
+ - pylint: C0103
378
+ - ruff: N803
327
379
  - pep8: N803
328
380
  - pycodestyle: N803
329
- - ruff: N803
330
381
 
331
- # Variable in function should be lowercase
332
- - - pylint: invalid-name
382
+ - # Variable in function should be lowercase
383
+ - pylint: invalid-name
384
+ - pylint: C0103
385
+ - ruff: N806
333
386
  - pep8: N806
334
387
  - pycodestyle: N806
335
- - ruff: N806
336
388
 
337
389
  # too complex
338
390
  - # Too many branches ({branches} > {max_branches})
339
391
  - pylint: too-many-branches
340
392
  - pylint: R0912
341
- - mccabe: MC0001
342
393
  - ruff: PLR0912
394
+ - mccabe: MC0001
395
+
343
396
  - # Too many statements ({statements} > {max_statements})
344
397
  - pylint: too-many-statements
345
398
  - pylint: R0915
346
- - mccabe: MC0001
347
- - pylint: too-many-statements
348
399
  - ruff: PLR0915
400
+ - mccabe: MC0001
349
401
 
350
402
  - # pep257 takes preference over pylint documentation warnings
351
- - pep257: D100
352
- - pydocstyle: D100
353
403
  - pylint: missing-docstring
404
+ - pylint: C0111
354
405
  - ruff: D100
406
+ - pep257: D100
407
+ - pydocstyle: D100
355
408
 
356
409
  - # Missing docstring in public class
357
- - pep257: D101
358
- - pydocstyle: D101
359
410
  - pylint: missing-docstring
411
+ - pylint: C0111
360
412
  - ruff: D101
413
+ - pep257: D101
414
+ - pydocstyle: D101
361
415
 
362
416
  - # Missing docstring in public method
363
- - pep257: D102
364
- - pydocstyle: D102
365
417
  - pylint: missing-docstring
418
+ - pylint: C0111
366
419
  - ruff: D102
420
+ - pep257: D102
421
+ - pydocstyle: D102
367
422
 
368
423
  - # Missing docstring in public function
369
- - pep257: D103
370
- - pydocstyle: D103
371
424
  - pylint: missing-docstring
425
+ - pylint: C0111
372
426
  - ruff: D103
427
+ - pep257: D103
428
+ - pydocstyle: D103
373
429
 
374
430
  - - pylint: singleton-comparison
431
+ - pylint: C0221
375
432
  - pep8: E711
376
433
  - pycodestyle: E711
377
434
 
378
435
  - - pylint: subprocess-run-check
379
- - bandit: B603
436
+ - pylint: W1510
380
437
  - ruff: S603
381
438
  - ruff: PLW1510
439
+ - bandit: B603
382
440
 
383
441
  - # Private member accessed:
384
442
  - pylint: protected-access
443
+ - pylint: W0212
385
444
  - ruff: SLF001
386
445
 
387
446
  # assert_used
@@ -418,6 +477,7 @@ combinations:
418
477
 
419
478
  # request_without_timeout
420
479
  - - pylint: missing-timeout
480
+ - pylint: W3101
421
481
  - ruff: S113
422
482
  - bandit: B113
423
483
 
@@ -528,13 +588,15 @@ combinations:
528
588
  # Within an `except` clause, raise exceptions with `raise ... from err` or `raise ... from None` to distinguish them from errors in exception handling
529
589
  # See: https://docs.astral.sh/ruff/rules/raise-without-from-inside-except
530
590
  - - pylint: raise-missing-from
591
+ - pylint: W0707
531
592
  - ruff: B904
532
593
 
533
594
  # Use of possibly insecure function - consider using safer ast.literal_eval
534
595
  # See: https://docs.astral.sh/ruff/rules/suspicious-eval-usage
535
596
  - - pylint: eval-used
536
- - bandit: B307
597
+ - pylint: W0123
537
598
  - ruff: S307
599
+ - bandit: B307
538
600
 
539
601
  - # {kind} name "{param_name}" does not reflect its {variance}; consider renaming it to "{replacement_name}"
540
602
  - pylint: type-name-incorrect-variance
@@ -1081,6 +1143,11 @@ combinations:
1081
1143
  - pylint: W3301
1082
1144
  - ruff: PLW3301
1083
1145
 
1146
+ - # Consider using 'with' for resource-allocating operations
1147
+ - pylint: consider-using-with
1148
+ - pylint: R1732
1149
+ - ruff: SIM115
1150
+
1084
1151
  - # Missing docstring in public package
1085
1152
  - ruff: D104
1086
1153
  - pycodestyle: D104
@@ -127,7 +127,7 @@ def build_command_line_source(
127
127
  "uses": {
128
128
  "flags": ["-u", "--uses"],
129
129
  "help": "A list of one or more libraries or frameworks that the"
130
- " project uses. Possible values are: django, celery, flask. This will be"
130
+ " project uses. Possible values are: django, celery. This will be"
131
131
  " autodetected by default, but if autodetection doesn't"
132
132
  " work, manually specify them using this flag.",
133
133
  },