prospector 1.14.1__py3-none-any.whl → 1.15.1__py3-none-any.whl
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.
- prospector/blender_combinations.yaml +988 -6
- prospector/postfilter.py +12 -2
- prospector/run.py +10 -3
- prospector/suppression.py +52 -16
- prospector/tools/base.py +10 -0
- prospector/tools/mypy/__init__.py +68 -14
- prospector/tools/pylint/__init__.py +8 -0
- prospector/tools/ruff/__init__.py +7 -1
- {prospector-1.14.1.dist-info → prospector-1.15.1.dist-info}/METADATA +1 -1
- {prospector-1.14.1.dist-info → prospector-1.15.1.dist-info}/RECORD +13 -13
- {prospector-1.14.1.dist-info → prospector-1.15.1.dist-info}/LICENSE +0 -0
- {prospector-1.14.1.dist-info → prospector-1.15.1.dist-info}/WHEEL +0 -0
- {prospector-1.14.1.dist-info → prospector-1.15.1.dist-info}/entry_points.txt +0 -0
|
@@ -10,12 +10,16 @@ combinations:
|
|
|
10
10
|
- pylint: unused-import
|
|
11
11
|
- pyflakes: F401
|
|
12
12
|
- frosted: E101
|
|
13
|
+
- ruff: F401
|
|
13
14
|
|
|
14
15
|
- # Syntax Error
|
|
15
16
|
- dodgy: diff
|
|
16
17
|
- pylint: syntax-error
|
|
17
18
|
- pyflakes: F999
|
|
18
19
|
- pep8: E901
|
|
20
|
+
# expected an indented block
|
|
21
|
+
- pycodestyle: E112
|
|
22
|
+
# IndentationError: unindent does not match any outer indentation level
|
|
19
23
|
- pycodestyle: E901
|
|
20
24
|
- mccabe: MC0000
|
|
21
25
|
- frosted: E402
|
|
@@ -24,12 +28,15 @@ combinations:
|
|
|
24
28
|
- pylint: undefined-variable
|
|
25
29
|
- pyflakes: F821
|
|
26
30
|
- frosted: E303
|
|
31
|
+
- ruff: F821
|
|
32
|
+
- mypy: name-defined
|
|
27
33
|
|
|
28
34
|
- # Unused variable
|
|
29
35
|
- pylint: unused-variable
|
|
30
36
|
- vulture: unused-variable
|
|
31
37
|
- pyflakes: F841
|
|
32
38
|
- frosted: E307
|
|
39
|
+
- ruff: F841
|
|
33
40
|
|
|
34
41
|
- # Mixed tabs and spaces
|
|
35
42
|
- pep257: D206
|
|
@@ -37,11 +44,13 @@ combinations:
|
|
|
37
44
|
- pep8: E101
|
|
38
45
|
- pycodestyle: E101
|
|
39
46
|
- pylint: indentation-mixture
|
|
47
|
+
- ruff: D206
|
|
40
48
|
|
|
41
49
|
- # Import from __future__ not first import
|
|
42
50
|
- pylint: misplaced-future
|
|
43
51
|
- pyflakes: F404
|
|
44
52
|
- frosted: E207
|
|
53
|
+
- ruff: F404
|
|
45
54
|
|
|
46
55
|
- # Line too long
|
|
47
56
|
- pep8: E501
|
|
@@ -84,6 +93,7 @@ combinations:
|
|
|
84
93
|
- pep8: E111
|
|
85
94
|
- pycodestyle: E111
|
|
86
95
|
- pylint: bad-indentation
|
|
96
|
+
- ruff: D207
|
|
87
97
|
|
|
88
98
|
- # incorrect indentation
|
|
89
99
|
- pep257: D208
|
|
@@ -91,6 +101,7 @@ combinations:
|
|
|
91
101
|
- pep8: E111
|
|
92
102
|
- pycodestyle: E111
|
|
93
103
|
- pylint: bad-indentation
|
|
104
|
+
- ruff: D208
|
|
94
105
|
|
|
95
106
|
- # comma not followed by a space
|
|
96
107
|
- pep8: E231
|
|
@@ -114,59 +125,75 @@ combinations:
|
|
|
114
125
|
- pylint: undefined-all-variable
|
|
115
126
|
- pyflakes: F822
|
|
116
127
|
- frosted: E304
|
|
128
|
+
- ruff: F822
|
|
117
129
|
|
|
118
130
|
- # duplicate argument in function definition
|
|
119
131
|
- pylint: duplicate-argument-name
|
|
120
132
|
- pyflakes: F831
|
|
121
133
|
- frosted: E206
|
|
134
|
+
- ruff: F831
|
|
122
135
|
|
|
123
136
|
- # redefinition of unused function
|
|
124
137
|
- pyflakes: F811
|
|
125
138
|
- pylint: function-redefined
|
|
139
|
+
- ruff: F811
|
|
126
140
|
|
|
127
141
|
- # f-string is missing placeholders
|
|
128
142
|
- pylint: f-string-without-interpolation
|
|
129
143
|
- pyflakes: F541
|
|
144
|
+
- ruff: F541
|
|
130
145
|
|
|
131
146
|
- # Duplicate key in dictionary
|
|
132
147
|
- pylint: duplicate-key
|
|
133
148
|
- pyflakes: F601
|
|
149
|
+
- ruff: F601
|
|
134
150
|
|
|
135
151
|
- # More than one starred expression in assignment
|
|
136
152
|
- pylint: too-many-star-expressions
|
|
137
153
|
- pyflakes: F622
|
|
154
|
+
- ruff: F622
|
|
138
155
|
|
|
139
156
|
- # Assert called on a tuple
|
|
140
157
|
- pylint: assert-on-tuple
|
|
141
158
|
- pyflakes: F631
|
|
159
|
+
- ruff: F631
|
|
142
160
|
|
|
143
161
|
- # 'break' outside loop
|
|
144
162
|
- pylint: not-in-loop
|
|
145
163
|
- pyflakes: F701
|
|
164
|
+
- ruff: F701
|
|
146
165
|
|
|
147
166
|
- # 'continue' not properly in loop
|
|
148
167
|
- pylint: not-in-loop
|
|
149
168
|
- pyflakes: F702
|
|
169
|
+
- ruff: F702
|
|
150
170
|
|
|
151
171
|
- # 'continue' not supported inside 'finally' clause
|
|
152
172
|
- pylint: continue-in-finally
|
|
173
|
+
- pylint: E0116
|
|
153
174
|
- pyflakes: F703
|
|
175
|
+
- ruff: F703
|
|
176
|
+
- ruff: PLE0116
|
|
154
177
|
|
|
155
178
|
- # Yield outside function
|
|
156
179
|
- pylint: yield-outside-function
|
|
157
180
|
- pyflakes: F704
|
|
181
|
+
- ruff: F704
|
|
158
182
|
|
|
159
183
|
- # Return outside function
|
|
160
184
|
- pylint: return-outside-function
|
|
161
185
|
- pyflakes: F706
|
|
186
|
+
- ruff: F706
|
|
162
187
|
|
|
163
188
|
- # default 'except:' must be last
|
|
164
189
|
- pylint: bad-except-order
|
|
165
190
|
- pyflakes: F707
|
|
191
|
+
- ruff: F707
|
|
166
192
|
|
|
167
193
|
- # NotImplemented raised - should raise NotImplementedError
|
|
168
194
|
- pylint: notimplemented-raised
|
|
169
195
|
- pyflakes: F901
|
|
196
|
+
- ruff: F901
|
|
170
197
|
|
|
171
198
|
- # first argument of a classmethod should be named 'cls'
|
|
172
199
|
- pep8: N804
|
|
@@ -187,11 +214,17 @@ combinations:
|
|
|
187
214
|
- pylint: redefined-outer-name
|
|
188
215
|
- pyflakes: F810
|
|
189
216
|
- frosted: E306
|
|
217
|
+
- ruff: F810
|
|
218
|
+
|
|
219
|
+
- # Redefinition of unused variable
|
|
220
|
+
- pylint: redefined-outer-name
|
|
221
|
+
- pyflakes: F811
|
|
190
222
|
|
|
191
223
|
- # Wildcard import
|
|
192
224
|
- pylint: wildcard-import
|
|
193
225
|
- pyflakes: F403
|
|
194
226
|
- frosted: E103
|
|
227
|
+
- ruff: F403
|
|
195
228
|
|
|
196
229
|
- # Return with argument inside generator
|
|
197
230
|
- pylint: return-arg-in-generator
|
|
@@ -214,6 +247,28 @@ combinations:
|
|
|
214
247
|
- frosted: W101
|
|
215
248
|
- pep8: E722
|
|
216
249
|
- pycodestyle: E722
|
|
250
|
+
- ruff: E722
|
|
251
|
+
# try_except_pass
|
|
252
|
+
- ruff: S110
|
|
253
|
+
- bandit: B110
|
|
254
|
+
|
|
255
|
+
- # No exception type(s) specified
|
|
256
|
+
- pylint: bare-except
|
|
257
|
+
- frosted: W101
|
|
258
|
+
- pep8: E722
|
|
259
|
+
- pycodestyle: E722
|
|
260
|
+
- ruff: E722
|
|
261
|
+
# try_except_continue
|
|
262
|
+
- ruff: S112
|
|
263
|
+
- bandit: B112
|
|
264
|
+
|
|
265
|
+
- # Do not catch blind exception: `Exception`
|
|
266
|
+
- pylint: broad-exception-caught
|
|
267
|
+
- ruff: BLE001
|
|
268
|
+
|
|
269
|
+
- # Create your own exception
|
|
270
|
+
- pylint: broad-exception-raised
|
|
271
|
+
- ruff: TRY002
|
|
217
272
|
|
|
218
273
|
- # Spaces around keyword/parameter equals
|
|
219
274
|
- pep8: E251
|
|
@@ -228,22 +283,27 @@ combinations:
|
|
|
228
283
|
- # redefinition of unused %r from line %r
|
|
229
284
|
- pyflakes: F811
|
|
230
285
|
- frosted: E301
|
|
286
|
+
- ruff: F811
|
|
231
287
|
|
|
232
288
|
- # list comprehension redefines %r from line %r
|
|
233
289
|
- pyflakes: F812
|
|
234
290
|
- frosted: E302
|
|
291
|
+
- ruff: F812
|
|
235
292
|
|
|
236
293
|
- # import %r from line %r shadowed by loop variable
|
|
237
294
|
- pyflakes: F402
|
|
238
295
|
- frosted: E102
|
|
296
|
+
- ruff: F402
|
|
239
297
|
|
|
240
298
|
- # syntax error in doctest
|
|
241
299
|
- pyflakes: FL0007
|
|
242
300
|
- frosted: E401
|
|
301
|
+
- ruff: FL0007
|
|
243
302
|
|
|
244
303
|
- # local variable %r referenced before assignment
|
|
245
304
|
- pyflakes: F823
|
|
246
305
|
- frosted: E305
|
|
306
|
+
- ruff: F823
|
|
247
307
|
|
|
248
308
|
- # pep8-naming incorrectly suggests that the first argument of a metaclass __new__ method should be 'cls'
|
|
249
309
|
- pylint: bad-mcs-classmethod-argument
|
|
@@ -255,28 +315,57 @@ combinations:
|
|
|
255
315
|
- pycodestyle: N801
|
|
256
316
|
- pylint: invalid-name
|
|
257
317
|
|
|
258
|
-
|
|
259
|
-
|
|
318
|
+
# function name should be lowercase
|
|
319
|
+
- - pylint: invalid-name
|
|
320
|
+
- pep8: N802
|
|
321
|
+
- pycodestyle: N802
|
|
322
|
+
|
|
323
|
+
# argument name should be lowercase
|
|
324
|
+
- - pylint: invalid-name
|
|
325
|
+
- pep8: N803
|
|
326
|
+
- pycodestyle: N803
|
|
327
|
+
|
|
328
|
+
# Variable in function should be lowercase
|
|
329
|
+
- - pylint: invalid-name
|
|
330
|
+
- pep8: N806
|
|
331
|
+
- pycodestyle: N806
|
|
332
|
+
|
|
333
|
+
# too complex
|
|
334
|
+
- # Too many branches ({branches} > {max_branches})
|
|
260
335
|
- pylint: too-many-branches
|
|
261
|
-
|
|
336
|
+
- pylint: R0912
|
|
337
|
+
- mccabe: MC0001
|
|
338
|
+
- ruff: PLR0912
|
|
339
|
+
- # Too many statements ({statements} > {max_statements})
|
|
262
340
|
- pylint: too-many-statements
|
|
341
|
+
- pylint: R0915
|
|
342
|
+
- mccabe: MC0001
|
|
343
|
+
- pylint: too-many-statements
|
|
344
|
+
- ruff: PLR0915
|
|
263
345
|
|
|
264
346
|
- # pep257 takes preference over pylint documentation warnings
|
|
265
347
|
- pep257: D100
|
|
266
348
|
- pydocstyle: D100
|
|
267
349
|
- pylint: missing-docstring
|
|
350
|
+
- ruff: D100
|
|
268
351
|
|
|
269
|
-
-
|
|
352
|
+
- # Missing docstring in public class
|
|
353
|
+
- pep257: D101
|
|
270
354
|
- pydocstyle: D101
|
|
271
355
|
- pylint: missing-docstring
|
|
356
|
+
- ruff: D101
|
|
272
357
|
|
|
273
|
-
-
|
|
358
|
+
- # Missing docstring in public method
|
|
359
|
+
- pep257: D102
|
|
274
360
|
- pydocstyle: D102
|
|
275
361
|
- pylint: missing-docstring
|
|
362
|
+
- ruff: D102
|
|
276
363
|
|
|
277
|
-
-
|
|
364
|
+
- # Missing docstring in public function
|
|
365
|
+
- pep257: D103
|
|
278
366
|
- pydocstyle: D103
|
|
279
367
|
- pylint: missing-docstring
|
|
368
|
+
- ruff: D103
|
|
280
369
|
|
|
281
370
|
- - pylint: singleton-comparison
|
|
282
371
|
- pep8: E711
|
|
@@ -285,3 +374,896 @@ combinations:
|
|
|
285
374
|
- - pylint: subprocess-run-check
|
|
286
375
|
- bandit: B603
|
|
287
376
|
- ruff: S603
|
|
377
|
+
- ruff: PLW1510
|
|
378
|
+
|
|
379
|
+
# assert_used
|
|
380
|
+
- - ruff: S101
|
|
381
|
+
- bandit: B101
|
|
382
|
+
|
|
383
|
+
# exec_used
|
|
384
|
+
- - ruff: S102
|
|
385
|
+
- bandit: B102
|
|
386
|
+
|
|
387
|
+
# set_bad_file_permissions
|
|
388
|
+
- - ruff: S103
|
|
389
|
+
- bandit: B103
|
|
390
|
+
|
|
391
|
+
# hardcoded_bind_all_interfaces
|
|
392
|
+
- - ruff: S104
|
|
393
|
+
- bandit: B104
|
|
394
|
+
|
|
395
|
+
# hardcoded_password_string
|
|
396
|
+
- - ruff: S105
|
|
397
|
+
- bandit: B105
|
|
398
|
+
|
|
399
|
+
# hardcoded_password_funcarg
|
|
400
|
+
- - ruff: S106
|
|
401
|
+
- bandit: B106
|
|
402
|
+
|
|
403
|
+
# hardcoded_password_default
|
|
404
|
+
- - ruff: S107
|
|
405
|
+
- bandit: B107
|
|
406
|
+
|
|
407
|
+
# hardcoded_tmp_directory
|
|
408
|
+
- - ruff: S108
|
|
409
|
+
- bandit: B108
|
|
410
|
+
|
|
411
|
+
# request_without_timeout
|
|
412
|
+
- - pylint: missing-timeout
|
|
413
|
+
- ruff: S113
|
|
414
|
+
- bandit: B113
|
|
415
|
+
|
|
416
|
+
# flask_debug_true
|
|
417
|
+
- - ruff: S201
|
|
418
|
+
- bandit: B201
|
|
419
|
+
|
|
420
|
+
# tarfile_unsafe_members
|
|
421
|
+
- - ruff: S202
|
|
422
|
+
- bandit: B202
|
|
423
|
+
|
|
424
|
+
# hashlib
|
|
425
|
+
- - ruff: S324
|
|
426
|
+
- bandit: B324
|
|
427
|
+
|
|
428
|
+
# request_with_no_cert_validation
|
|
429
|
+
- - ruff: S501
|
|
430
|
+
- bandit: B501
|
|
431
|
+
|
|
432
|
+
# ssl_with_bad_version
|
|
433
|
+
- - ruff: S502
|
|
434
|
+
- bandit: B502
|
|
435
|
+
|
|
436
|
+
# ssl_with_bad_defaults
|
|
437
|
+
- - ruff: S503
|
|
438
|
+
- bandit: B503
|
|
439
|
+
|
|
440
|
+
# ssl_with_no_version
|
|
441
|
+
- - ruff: S504
|
|
442
|
+
- bandit: B504
|
|
443
|
+
|
|
444
|
+
# weak_cryptographic_key
|
|
445
|
+
- - ruff: S505
|
|
446
|
+
- bandit: B505
|
|
447
|
+
|
|
448
|
+
# unsafe-yaml-load
|
|
449
|
+
- - ruff: S506
|
|
450
|
+
- bandit: B506
|
|
451
|
+
|
|
452
|
+
# ssh_no_host_key_verification
|
|
453
|
+
- - ruff: S507
|
|
454
|
+
- bandit: B507
|
|
455
|
+
|
|
456
|
+
# snmp_insecure_version
|
|
457
|
+
- - ruff: S508
|
|
458
|
+
- bandit: B508
|
|
459
|
+
|
|
460
|
+
# snmp_weak_cryptography
|
|
461
|
+
- - ruff: S509
|
|
462
|
+
- bandit: B509
|
|
463
|
+
|
|
464
|
+
# paramiko-call
|
|
465
|
+
- - ruff: S601
|
|
466
|
+
- bandit: B601
|
|
467
|
+
|
|
468
|
+
# subprocess-popen-with-shell-equals-true
|
|
469
|
+
- - ruff: S602
|
|
470
|
+
- bandit: B602
|
|
471
|
+
|
|
472
|
+
# call-with-shell-equals-true
|
|
473
|
+
- - ruff: S604
|
|
474
|
+
- bandit: B604
|
|
475
|
+
|
|
476
|
+
# start-process-with-a-shell
|
|
477
|
+
- - ruff: S605
|
|
478
|
+
- bandit: B605
|
|
479
|
+
|
|
480
|
+
# start-process-with-no-shell
|
|
481
|
+
- - ruff: S606
|
|
482
|
+
- bandit: B606
|
|
483
|
+
|
|
484
|
+
# start-process-with-partial-path
|
|
485
|
+
- - ruff: S607
|
|
486
|
+
- bandit: B607
|
|
487
|
+
|
|
488
|
+
# hardcoded-sql-expression
|
|
489
|
+
- - ruff: S608
|
|
490
|
+
- bandit: B608
|
|
491
|
+
|
|
492
|
+
# linux-commands-wildcard-injection
|
|
493
|
+
- - ruff: S609
|
|
494
|
+
- bandit: B609
|
|
495
|
+
|
|
496
|
+
# django-extra
|
|
497
|
+
- - ruff: S610
|
|
498
|
+
- bandit: B610
|
|
499
|
+
|
|
500
|
+
# django-raw-sql
|
|
501
|
+
- - ruff: S611
|
|
502
|
+
- bandit: B611
|
|
503
|
+
|
|
504
|
+
# logging-config-insecure-listen
|
|
505
|
+
- - ruff: S612
|
|
506
|
+
- bandit: B612
|
|
507
|
+
|
|
508
|
+
# jinja2_autoescape_false
|
|
509
|
+
- - ruff: S701
|
|
510
|
+
- bandit: B701
|
|
511
|
+
|
|
512
|
+
# mako-templates
|
|
513
|
+
- - ruff: S702
|
|
514
|
+
- bandit: B702
|
|
515
|
+
|
|
516
|
+
# Undefined name
|
|
517
|
+
- - mypy: name-defined
|
|
518
|
+
- ruff: F481
|
|
519
|
+
|
|
520
|
+
# Within an `except` clause, raise exceptions with `raise ... from err` or `raise ... from None` to distinguish them from errors in exception handling
|
|
521
|
+
# See: https://docs.astral.sh/ruff/rules/raise-without-from-inside-except
|
|
522
|
+
- - pylint: raise-missing-from
|
|
523
|
+
- ruff: B904
|
|
524
|
+
|
|
525
|
+
# Use of possibly insecure function - consider using safer ast.literal_eval
|
|
526
|
+
# See: https://docs.astral.sh/ruff/rules/suspicious-eval-usage
|
|
527
|
+
- - pylint: eval-used
|
|
528
|
+
- bandit: B307
|
|
529
|
+
- ruff: S307
|
|
530
|
+
|
|
531
|
+
- # {kind} name "{param_name}" does not reflect its {variance}; consider renaming it to "{replacement_name}"
|
|
532
|
+
- pylint: type-name-incorrect-variance
|
|
533
|
+
- pylint: C0105
|
|
534
|
+
- ruff: PLC0105
|
|
535
|
+
|
|
536
|
+
- # {kind} cannot be both covariant and contravariant
|
|
537
|
+
- pylint: type-bivariance
|
|
538
|
+
- pylint: C0131
|
|
539
|
+
- ruff: PLC0131
|
|
540
|
+
|
|
541
|
+
- # {kind} name {param_name} does not match assigned variable name {var_name}
|
|
542
|
+
- pylint: type-param-name-mismatch
|
|
543
|
+
- pylint: C0132
|
|
544
|
+
- ruff: PLC0132
|
|
545
|
+
|
|
546
|
+
- # Class __slots__ should be a non-string iterable
|
|
547
|
+
- pylint: single-string-slots
|
|
548
|
+
- pylint: C0205
|
|
549
|
+
- ruff: PLC0205
|
|
550
|
+
|
|
551
|
+
- # Extracting value from dictionary without calling .items()
|
|
552
|
+
- pylint: dict-index-missing-items
|
|
553
|
+
- pylint: C0206
|
|
554
|
+
- ruff: PLC0206
|
|
555
|
+
|
|
556
|
+
- # Use a sequence type instead of a set when iterating over values
|
|
557
|
+
- pylint: iteration-over-set
|
|
558
|
+
- pylint: C0208
|
|
559
|
+
- ruff: PLC0208
|
|
560
|
+
|
|
561
|
+
- # Import alias does not rename original package
|
|
562
|
+
- pylint: useless-import-alias
|
|
563
|
+
- pylint: C0414
|
|
564
|
+
- ruff: PLC0414
|
|
565
|
+
|
|
566
|
+
- # import should be at the top-level of a file
|
|
567
|
+
- pylint: import-outside-top-level
|
|
568
|
+
- pylint: C0415
|
|
569
|
+
- ruff: PLC0415
|
|
570
|
+
|
|
571
|
+
- # len({expression}) used as condition without comparison
|
|
572
|
+
- pylint: len-test
|
|
573
|
+
- pylint: C1802
|
|
574
|
+
- ruff: PLC1802
|
|
575
|
+
|
|
576
|
+
- # {existing} can be simplified to {replacement} as an empty string is falsey
|
|
577
|
+
- pylint: compare-to-empty-string
|
|
578
|
+
- pylint: C1901
|
|
579
|
+
- ruff: PLC1901
|
|
580
|
+
|
|
581
|
+
- # {kind} name {name} contains a non-ASCII character
|
|
582
|
+
- pylint: non-ascii-name
|
|
583
|
+
- pylint: C2401
|
|
584
|
+
- ruff: PLC2401
|
|
585
|
+
|
|
586
|
+
- # Module alias {name} contains a non-ASCII character
|
|
587
|
+
- pylint: non-ascii-import-name
|
|
588
|
+
- pylint: C2403
|
|
589
|
+
- ruff: PLC2403
|
|
590
|
+
|
|
591
|
+
- # Private name import {name} from external module {module}
|
|
592
|
+
- pylint: import-private-name
|
|
593
|
+
- pylint: C2701
|
|
594
|
+
- ruff: PLC2701
|
|
595
|
+
|
|
596
|
+
- # Unnecessary dunder call to {method}. {replacement}.
|
|
597
|
+
- pylint: unnecessary-dunder-call
|
|
598
|
+
- pylint: C2801
|
|
599
|
+
- ruff: PLC2801
|
|
600
|
+
|
|
601
|
+
- # Lambda expression called directly. Execute the expression inline instead.
|
|
602
|
+
- pylint: unnecessary-direct-lambda-call
|
|
603
|
+
- pylint: C3002
|
|
604
|
+
- ruff: PLC3002
|
|
605
|
+
|
|
606
|
+
- # __init__ method is a generator
|
|
607
|
+
- pylint: yield-in-init
|
|
608
|
+
- pylint: E0100
|
|
609
|
+
- ruff: PLE0100
|
|
610
|
+
|
|
611
|
+
- # Explicit return in __init__
|
|
612
|
+
- pylint: return-in-init
|
|
613
|
+
- pylint: E0101
|
|
614
|
+
- ruff: PLE0101
|
|
615
|
+
|
|
616
|
+
- # Name {name} is both nonlocal and global
|
|
617
|
+
- pylint: nonlocal-and-global
|
|
618
|
+
- pylint: E0115
|
|
619
|
+
- ruff: PLE0115
|
|
620
|
+
|
|
621
|
+
- # Nonlocal name {name} found without binding
|
|
622
|
+
- pylint: nonlocal-without-binding
|
|
623
|
+
- pylint: E0117
|
|
624
|
+
- ruff: PLE0117
|
|
625
|
+
|
|
626
|
+
- # Name {name} is used prior to global declaration on {row}
|
|
627
|
+
- pylint: load-before-global-declaration
|
|
628
|
+
- pylint: E0118
|
|
629
|
+
- ruff: PLE0118
|
|
630
|
+
|
|
631
|
+
- # Attribute {name} is not defined in class's __slots__
|
|
632
|
+
- pylint: non-slot-assignment
|
|
633
|
+
- pylint: E0237
|
|
634
|
+
- ruff: PLE0237
|
|
635
|
+
|
|
636
|
+
- # Duplicate base {base} for class {class}
|
|
637
|
+
- pylint: duplicate-bases
|
|
638
|
+
- pylint: E0241
|
|
639
|
+
- ruff: PLE0241
|
|
640
|
+
|
|
641
|
+
- # The special method {} expects {}, {} {} given
|
|
642
|
+
- pylint: unexpected-special-method-signature
|
|
643
|
+
- pylint: E0302
|
|
644
|
+
- ruff: PLE0302
|
|
645
|
+
|
|
646
|
+
- # __len__ does not return a non-negative integer
|
|
647
|
+
- pylint: invalid-length-return-type
|
|
648
|
+
- pylint: E0303
|
|
649
|
+
- ruff: PLE0303
|
|
650
|
+
|
|
651
|
+
- # __bool__ does not return bool
|
|
652
|
+
- pylint: invalid-bool-return-type
|
|
653
|
+
- pylint: E0304
|
|
654
|
+
- ruff: PLE0304
|
|
655
|
+
|
|
656
|
+
- # __index__ does not return an integer
|
|
657
|
+
- pylint: invalid-index-return-type
|
|
658
|
+
- pylint: E0305
|
|
659
|
+
- ruff: PLE0305
|
|
660
|
+
|
|
661
|
+
- # __str__ does not return str
|
|
662
|
+
- pylint: invalid-str-return-type
|
|
663
|
+
- pylint: E0307
|
|
664
|
+
- ruff: PLE0307
|
|
665
|
+
|
|
666
|
+
- # __bytes__ does not return bytes
|
|
667
|
+
- pylint: invalid-bytes-return-type
|
|
668
|
+
- pylint: E0308
|
|
669
|
+
- ruff: PLE0308
|
|
670
|
+
|
|
671
|
+
- # __hash__ does not return an integer
|
|
672
|
+
- pylint: invalid-hash-return-type
|
|
673
|
+
- pylint: E0309
|
|
674
|
+
- ruff: PLE0309
|
|
675
|
+
|
|
676
|
+
- # Invalid object in __all__, must contain only strings
|
|
677
|
+
- pylint: invalid-all-object
|
|
678
|
+
- pylint: E0604
|
|
679
|
+
- ruff: PLE0604
|
|
680
|
+
|
|
681
|
+
- # Invalid format for __all__, must be tuple or list
|
|
682
|
+
- pylint: invalid-all-format
|
|
683
|
+
- pylint: E0605
|
|
684
|
+
- ruff: PLE0605
|
|
685
|
+
|
|
686
|
+
- # Expression is likely to raise IndexError
|
|
687
|
+
- pylint: potential-index-error
|
|
688
|
+
- pylint: E0643
|
|
689
|
+
- ruff: PLE0643
|
|
690
|
+
|
|
691
|
+
- # Bare raise statement is not inside an exception handler
|
|
692
|
+
- pylint: misplaced-bare-raise
|
|
693
|
+
- pylint: E0704
|
|
694
|
+
- ruff: PLE0704
|
|
695
|
+
|
|
696
|
+
- # Repeated keyword argument: {duplicate_keyword}
|
|
697
|
+
- pylint: repeated-keyword-argument
|
|
698
|
+
- pylint: E1132
|
|
699
|
+
- ruff: PLE1132
|
|
700
|
+
|
|
701
|
+
- # Unpacking a dictionary in iteration without calling .items()
|
|
702
|
+
- pylint: dict-iter-missing-items
|
|
703
|
+
- pylint: E1141
|
|
704
|
+
- ruff: PLE1141
|
|
705
|
+
|
|
706
|
+
- # await should be used within an async function
|
|
707
|
+
- pylint: await-outside-async
|
|
708
|
+
- pylint: E1142
|
|
709
|
+
- ruff: PLE1142
|
|
710
|
+
|
|
711
|
+
- # Too many arguments for logging format string
|
|
712
|
+
- pylint: logging-too-many-args
|
|
713
|
+
- pylint: E1205
|
|
714
|
+
- ruff: PLE1205
|
|
715
|
+
|
|
716
|
+
- # Not enough arguments for logging format string
|
|
717
|
+
- pylint: logging-too-few-args
|
|
718
|
+
- pylint: E1206
|
|
719
|
+
- ruff: PLE1206
|
|
720
|
+
|
|
721
|
+
- # Unsupported format character '{format_char}'
|
|
722
|
+
- pylint: bad-string-format-character
|
|
723
|
+
- pylint: E1300
|
|
724
|
+
- ruff: PLE1300
|
|
725
|
+
|
|
726
|
+
- # Format type does not match argument type
|
|
727
|
+
- pylint: bad-string-format-type
|
|
728
|
+
- pylint: E1307
|
|
729
|
+
- ruff: PLE1307
|
|
730
|
+
|
|
731
|
+
- # String {strip} call contains duplicate characters (did you mean {removal}?)
|
|
732
|
+
- pylint: bad-str-strip-call
|
|
733
|
+
- pylint: E1310
|
|
734
|
+
- ruff: PLE1310
|
|
735
|
+
|
|
736
|
+
- # Invalid type for initial os.getenv argument; expected str
|
|
737
|
+
- pylint: invalid-envvar-value
|
|
738
|
+
- pylint: E1507
|
|
739
|
+
- ruff: PLE1507
|
|
740
|
+
|
|
741
|
+
- # @singledispatch decorator should not be used on methods
|
|
742
|
+
- pylint: singledispatch-method
|
|
743
|
+
- pylint: E1519
|
|
744
|
+
- ruff: PLE1519
|
|
745
|
+
|
|
746
|
+
- # @singledispatchmethod decorator should not be used on non-method functions
|
|
747
|
+
- pylint: singledispatchmethod-function
|
|
748
|
+
- pylint: E1520
|
|
749
|
+
- ruff: PLE1520
|
|
750
|
+
|
|
751
|
+
- # yield from statement in async function; use async for instead
|
|
752
|
+
- pylint: yield-from-in-async-function
|
|
753
|
+
- pylint: E1700
|
|
754
|
+
- ruff: PLE1700
|
|
755
|
+
|
|
756
|
+
- # Contains control characters that can permit obfuscated code
|
|
757
|
+
- pylint: bidirectional-unicode
|
|
758
|
+
- pylint: E2502
|
|
759
|
+
- ruff: PLE2502
|
|
760
|
+
|
|
761
|
+
- # Invalid unescaped character backspace, use "\b" instead
|
|
762
|
+
- pylint: invalid-character-backspace
|
|
763
|
+
- pylint: E2510
|
|
764
|
+
- ruff: PLE2510
|
|
765
|
+
|
|
766
|
+
- # Invalid unescaped character SUB, use "\x1a" instead
|
|
767
|
+
- pylint: invalid-character-sub
|
|
768
|
+
- pylint: E2512
|
|
769
|
+
- ruff: PLE2512
|
|
770
|
+
|
|
771
|
+
- # Invalid unescaped character ESC, use "\x1b" instead
|
|
772
|
+
- pylint: invalid-character-esc
|
|
773
|
+
- pylint: E2513
|
|
774
|
+
- ruff: PLE2513
|
|
775
|
+
|
|
776
|
+
- # Invalid unescaped character NULL, use "\x00" instead
|
|
777
|
+
- pylint: invalid-character-nul
|
|
778
|
+
- pylint: E2514
|
|
779
|
+
- ruff: PLE2514
|
|
780
|
+
|
|
781
|
+
- # Invalid unescaped character zero-width-space, use "\u200B" instead
|
|
782
|
+
- pylint: invalid-character-zero-width-space
|
|
783
|
+
- pylint: E2515
|
|
784
|
+
- ruff: PLE2515
|
|
785
|
+
|
|
786
|
+
- # Iterated set {name} is modified within the for loop
|
|
787
|
+
- pylint: modified-iterating-set
|
|
788
|
+
- pylint: E2515
|
|
789
|
+
- ruff: PLE2515
|
|
790
|
+
|
|
791
|
+
- # Name compared with itself, consider replacing {actual}
|
|
792
|
+
- pylint: comparison-with-itself
|
|
793
|
+
- pylint: R0124
|
|
794
|
+
- ruff: PLR0124
|
|
795
|
+
|
|
796
|
+
- # Two constants compared in a comparison, consider replacing {left_constant} {op} {right_constant}
|
|
797
|
+
- pylint: comparison-of-constant
|
|
798
|
+
- pylint: R0133
|
|
799
|
+
- ruff: PLR0133
|
|
800
|
+
|
|
801
|
+
- # Class method defined without decorator
|
|
802
|
+
- pylint: no-classmethod-decorator
|
|
803
|
+
- pylint: R0202
|
|
804
|
+
- ruff: PLR0202
|
|
805
|
+
|
|
806
|
+
- # Static method defined without decorator
|
|
807
|
+
- pylint: no-staticmethod-decorator
|
|
808
|
+
- pylint: R0203
|
|
809
|
+
- ruff: PLR0203
|
|
810
|
+
|
|
811
|
+
- # Cannot have defined parameters for properties
|
|
812
|
+
- pylint: property-with-parameters
|
|
813
|
+
- pylint: R0206
|
|
814
|
+
- ruff: PLR0206
|
|
815
|
+
|
|
816
|
+
- # Use from {module} import {name} in lieu of alias
|
|
817
|
+
- pylint: manual-from-import
|
|
818
|
+
- pylint: R0402
|
|
819
|
+
- ruff: PLR0402
|
|
820
|
+
|
|
821
|
+
- # Too many public methods ({methods} > {max_methods})
|
|
822
|
+
- pylint: too-many-public-methods
|
|
823
|
+
- pylint: R0904
|
|
824
|
+
- ruff: PLR0904
|
|
825
|
+
|
|
826
|
+
- # Too many return statements ({returns} > {max_returns})
|
|
827
|
+
- pylint: too-many-return-statements
|
|
828
|
+
- pylint: R0911
|
|
829
|
+
- ruff: PLR0911
|
|
830
|
+
|
|
831
|
+
- # Too many arguments in function definition ({c_args} > {max_args})
|
|
832
|
+
- pylint: too-many-arguments
|
|
833
|
+
- pylint: R0913
|
|
834
|
+
- ruff: PLR0913
|
|
835
|
+
|
|
836
|
+
- # Too many local variables ({current_amount}/{max_amount})
|
|
837
|
+
- pylint: too-many-locals
|
|
838
|
+
- pylint: R0914
|
|
839
|
+
- ruff: PLR0914
|
|
840
|
+
|
|
841
|
+
- # Too many Boolean expressions ({expressions} > {max_expressions})
|
|
842
|
+
- pylint: too-many-boolean-expressions
|
|
843
|
+
- pylint: R0916
|
|
844
|
+
- ruff: PLR0916
|
|
845
|
+
|
|
846
|
+
- # Too many positional arguments ({c_pos}/{max_pos})
|
|
847
|
+
- pylint: too-many-positional-arguments
|
|
848
|
+
- pylint: R0917
|
|
849
|
+
- ruff: PLR0917
|
|
850
|
+
|
|
851
|
+
- # Merge isinstance calls: {expression}
|
|
852
|
+
- pylint: repeated-isinstance-calls
|
|
853
|
+
- pylint: R1701
|
|
854
|
+
- ruff: PLR1701
|
|
855
|
+
|
|
856
|
+
- # Too many nested blocks ({nested_blocks} > {max_nested_blocks})
|
|
857
|
+
- pylint: too-many-nested-blocks
|
|
858
|
+
- pylint: R1702
|
|
859
|
+
- ruff: PLR1702
|
|
860
|
+
|
|
861
|
+
- # Redefining argument with the local name {name}
|
|
862
|
+
- pylint: redefined-argument-from-local
|
|
863
|
+
- pylint: R1704
|
|
864
|
+
- ruff: PLR1704
|
|
865
|
+
|
|
866
|
+
- # Consider using if-else expression
|
|
867
|
+
- pylint: and-or-ternary
|
|
868
|
+
- pylint: R1706
|
|
869
|
+
- ruff: PLR1706
|
|
870
|
+
|
|
871
|
+
- # Useless return statement at end of function
|
|
872
|
+
- pylint: useless-return
|
|
873
|
+
- pylint: R1711
|
|
874
|
+
- ruff: PLR1711
|
|
875
|
+
|
|
876
|
+
- # Consider merging multiple comparisons: {expression}. Use a set if the elements are hashable.
|
|
877
|
+
- pylint: repeated-equality-comparison
|
|
878
|
+
- pylint: R1714
|
|
879
|
+
- ruff: PLR1714
|
|
880
|
+
|
|
881
|
+
- # Contains chained boolean comparison that can be simplified
|
|
882
|
+
- pylint: boolean-chained-comparison
|
|
883
|
+
- pylint: R1716
|
|
884
|
+
- ruff: PLR1716
|
|
885
|
+
|
|
886
|
+
- # Use sys.exit() instead of {name}
|
|
887
|
+
- pylint: sys-exit-alias
|
|
888
|
+
- pylint: R1722
|
|
889
|
+
- ruff: PLR1722
|
|
890
|
+
|
|
891
|
+
- # Replace if statement with {replacement}
|
|
892
|
+
- pylint: if-stmt-min-max
|
|
893
|
+
- pylint: R1730
|
|
894
|
+
- ruff: PLR1730
|
|
895
|
+
|
|
896
|
+
- # Unnecessary lookup of dictionary value by key
|
|
897
|
+
- pylint: unnecessary-dict-index-lookup
|
|
898
|
+
- pylint: R1733
|
|
899
|
+
- ruff: PLR1733
|
|
900
|
+
|
|
901
|
+
- # List index lookup in enumerate() loop
|
|
902
|
+
- pylint: unnecessary-list-index-lookup
|
|
903
|
+
- pylint: R1736
|
|
904
|
+
- ruff: PLR1736
|
|
905
|
+
|
|
906
|
+
- # Magic value used in comparison, consider replacing {value} with a constant variable
|
|
907
|
+
- pylint: magic-value-comparison
|
|
908
|
+
- pylint: R2004
|
|
909
|
+
- ruff: PLR2004
|
|
910
|
+
|
|
911
|
+
- # Line with empty comment
|
|
912
|
+
- pylint: empty-comment
|
|
913
|
+
- pylint: R2044
|
|
914
|
+
- ruff: PLR2044
|
|
915
|
+
|
|
916
|
+
- # Use elif instead of else then if, to reduce indentation
|
|
917
|
+
- pylint: collapsible-else-if
|
|
918
|
+
- pylint: R5501
|
|
919
|
+
- ruff: PLR5501
|
|
920
|
+
|
|
921
|
+
- # Use {operator} to perform an augmented assignment directly
|
|
922
|
+
- pylint: non-augmented-assignment
|
|
923
|
+
- pylint: R6104
|
|
924
|
+
- ruff: PLR6104
|
|
925
|
+
|
|
926
|
+
- # Use a set literal when testing for membership
|
|
927
|
+
- pylint: literal-membership
|
|
928
|
+
- pylint: R6201
|
|
929
|
+
- ruff: PLR6201
|
|
930
|
+
|
|
931
|
+
- # Method {method_name} could be a function, class method, or static method
|
|
932
|
+
- pylint: no-self-use
|
|
933
|
+
- pylint: R6301
|
|
934
|
+
- ruff: PLR6301
|
|
935
|
+
|
|
936
|
+
- # Lambda may be unnecessary; consider inlining inner function
|
|
937
|
+
- pylint: unnecessary-lambda
|
|
938
|
+
- pylint: W0108
|
|
939
|
+
- ruff: PLW0108
|
|
940
|
+
|
|
941
|
+
- # else clause on loop without a break statement; remove the else and dedent its contents
|
|
942
|
+
- pylint: useless-else-on-loop
|
|
943
|
+
- pylint: W0120
|
|
944
|
+
- ruff: PLW0120
|
|
945
|
+
|
|
946
|
+
- # Self-assignment of variable {name}
|
|
947
|
+
- pylint: self-assigning-variable
|
|
948
|
+
- pylint: W0127
|
|
949
|
+
- ruff: PLW0127
|
|
950
|
+
|
|
951
|
+
- # Redeclared variable {name} in assignment
|
|
952
|
+
- pylint: redeclared-assigned-name
|
|
953
|
+
- pylint: W0128
|
|
954
|
+
- ruff: PLW0128
|
|
955
|
+
|
|
956
|
+
- # Asserting on an empty string literal will never pass
|
|
957
|
+
- pylint: assert-on-string-literal
|
|
958
|
+
- pylint: W0129
|
|
959
|
+
- ruff: PLW0129
|
|
960
|
+
|
|
961
|
+
- # Named expression used without context
|
|
962
|
+
- pylint: named-expr-without-context
|
|
963
|
+
- pylint: W0131
|
|
964
|
+
- ruff: PLW0131
|
|
965
|
+
|
|
966
|
+
- # Missing raise statement on exception
|
|
967
|
+
- pylint: useless-exception-statement
|
|
968
|
+
- pylint: W0133
|
|
969
|
+
- ruff: PLW0133
|
|
970
|
+
|
|
971
|
+
- # Comparing against a NaN value; use math.isnan instead
|
|
972
|
+
- pylint: nan-comparison
|
|
973
|
+
- pylint: W0177
|
|
974
|
+
- ruff: PLW0177
|
|
975
|
+
|
|
976
|
+
- # First argument of a static method should not be named {argument_name}
|
|
977
|
+
- pylint: bad-staticmethod-argument
|
|
978
|
+
- pylint: W0211
|
|
979
|
+
- ruff: PLW0211
|
|
980
|
+
|
|
981
|
+
- # Slot {slot_name} redefined from base class {base}
|
|
982
|
+
- pylint: redefined-slots-in-subclass
|
|
983
|
+
- pylint: W0244
|
|
984
|
+
- ruff: PLW0244
|
|
985
|
+
|
|
986
|
+
- # super call is missing parentheses
|
|
987
|
+
- pylint: super-without-brackets
|
|
988
|
+
- pylint: W0245
|
|
989
|
+
- ruff: PLW0245
|
|
990
|
+
|
|
991
|
+
- # Module {name} imports itself
|
|
992
|
+
- pylint: import-self
|
|
993
|
+
- pylint: W0406
|
|
994
|
+
- ruff: PLW0406
|
|
995
|
+
|
|
996
|
+
- # Using global for {name} but no assignment is done
|
|
997
|
+
- pylint: global-variable-not-assigned
|
|
998
|
+
- pylint: W0602
|
|
999
|
+
- ruff: PLW0602
|
|
1000
|
+
|
|
1001
|
+
- # Using the global statement to update {name} is discouraged
|
|
1002
|
+
- pylint: global-statement
|
|
1003
|
+
- pylint: W0603
|
|
1004
|
+
- ruff: PLW0603
|
|
1005
|
+
|
|
1006
|
+
- # global at module level is redundant
|
|
1007
|
+
- pylint: global-at-module-level
|
|
1008
|
+
- pylint: W0604
|
|
1009
|
+
- ruff: PLW0604
|
|
1010
|
+
|
|
1011
|
+
- # Reassigned {} variable in {method_type} method
|
|
1012
|
+
- pylint: self-or-cls-assignment
|
|
1013
|
+
- pylint: W0642
|
|
1014
|
+
- ruff: PLW0642
|
|
1015
|
+
|
|
1016
|
+
- # Exception to catch is the result of a binary and operation
|
|
1017
|
+
- pylint: binary-op-exception
|
|
1018
|
+
- pylint: W0711
|
|
1019
|
+
- ruff: PLW0711
|
|
1020
|
+
|
|
1021
|
+
- # {mode} is not a valid mode for open
|
|
1022
|
+
- pylint: bad-open-mode
|
|
1023
|
+
- pylint: W1501
|
|
1024
|
+
- ruff: PLW1501
|
|
1025
|
+
|
|
1026
|
+
- # Shallow copy of os.environ via copy.copy(os.environ)
|
|
1027
|
+
- pylint: shallow-copy-environ
|
|
1028
|
+
- pylint: W1507
|
|
1029
|
+
- ruff: PLW1507
|
|
1030
|
+
|
|
1031
|
+
- # Invalid type for environment variable default; expected str or None
|
|
1032
|
+
- pylint: invalid-envvar-default
|
|
1033
|
+
- pylint: W1508
|
|
1034
|
+
- ruff: PLW1508
|
|
1035
|
+
|
|
1036
|
+
- # preexec_fn argument is unsafe when using threads
|
|
1037
|
+
- pylint: subprocess-popen-preexec-fn
|
|
1038
|
+
- pylint: W1509
|
|
1039
|
+
- ruff: PLW1509
|
|
1040
|
+
|
|
1041
|
+
- # subprocess.run without explicit check argument
|
|
1042
|
+
- pylint: subprocess-run-without-check
|
|
1043
|
+
- pylint: W1510
|
|
1044
|
+
- ruff: PLW1510
|
|
1045
|
+
|
|
1046
|
+
- # {function_name} in text mode without explicit encoding argument
|
|
1047
|
+
- pylint: unspecified-encoding
|
|
1048
|
+
- pylint: W1514
|
|
1049
|
+
- ruff: PLW1514
|
|
1050
|
+
|
|
1051
|
+
- # Object does not implement __hash__ method
|
|
1052
|
+
- pylint: eq-without-hash
|
|
1053
|
+
- pylint: W1641
|
|
1054
|
+
- ruff: PLW1641
|
|
1055
|
+
|
|
1056
|
+
- # Threading lock directly created in with statement has no effect
|
|
1057
|
+
- pylint: useless-with-lock
|
|
1058
|
+
- pylint: W2101
|
|
1059
|
+
- ruff: PLW2101
|
|
1060
|
+
|
|
1061
|
+
- # Outer {outer_kind} variable {name} overwritten by inner {inner_kind} target
|
|
1062
|
+
- pylint: redefined-loop-name
|
|
1063
|
+
- pylint: W2901
|
|
1064
|
+
- ruff: PLW2901
|
|
1065
|
+
|
|
1066
|
+
- # Dunder method {name} has no special meaning in Python 3
|
|
1067
|
+
- pylint: bad-dunder-method-name
|
|
1068
|
+
- pylint: W3201
|
|
1069
|
+
- ruff: PLW3201
|
|
1070
|
+
|
|
1071
|
+
- # Nested {func} calls can be flattened
|
|
1072
|
+
- pylint: nested-min-max
|
|
1073
|
+
- pylint: W3301
|
|
1074
|
+
- ruff: PLW3301
|
|
1075
|
+
|
|
1076
|
+
- # Missing docstring in public package
|
|
1077
|
+
- ruff: D104
|
|
1078
|
+
- pycodestyle: D104
|
|
1079
|
+
- pep257: D104
|
|
1080
|
+
|
|
1081
|
+
- # Missing docstring in magic method
|
|
1082
|
+
- ruff: D105
|
|
1083
|
+
- pycodestyle: D105
|
|
1084
|
+
- pep257: D105
|
|
1085
|
+
|
|
1086
|
+
- # Missing docstring in public nested class
|
|
1087
|
+
- ruff: D106
|
|
1088
|
+
- pycodestyle: D106
|
|
1089
|
+
- pep257: D106
|
|
1090
|
+
|
|
1091
|
+
- # Missing docstring in __init__
|
|
1092
|
+
- ruff: D107
|
|
1093
|
+
- pycodestyle: D107
|
|
1094
|
+
- pep257: D107
|
|
1095
|
+
|
|
1096
|
+
- # One-line docstring should fit on one line
|
|
1097
|
+
- ruff: D200
|
|
1098
|
+
- pycodestyle: D200
|
|
1099
|
+
- pep257: D200
|
|
1100
|
+
|
|
1101
|
+
- # No blank lines allowed before function docstring (found {num_lines})
|
|
1102
|
+
- ruff: D201
|
|
1103
|
+
- pycodestyle: D201
|
|
1104
|
+
- pep257: D201
|
|
1105
|
+
|
|
1106
|
+
- # No blank lines allowed after function docstring (found {num_lines})
|
|
1107
|
+
- ruff: D202
|
|
1108
|
+
- pycodestyle: D202
|
|
1109
|
+
- pep257: D202
|
|
1110
|
+
|
|
1111
|
+
- # 1 blank line required before class docstring
|
|
1112
|
+
- ruff: D203
|
|
1113
|
+
- pycodestyle: D203
|
|
1114
|
+
- pep257: D203
|
|
1115
|
+
|
|
1116
|
+
- # 1 blank line required after class docstring
|
|
1117
|
+
- ruff: D204
|
|
1118
|
+
- pycodestyle: D204
|
|
1119
|
+
- pep257: D204
|
|
1120
|
+
|
|
1121
|
+
- # 1 blank line required between summary line and description
|
|
1122
|
+
- ruff: D205
|
|
1123
|
+
- pycodestyle: D205
|
|
1124
|
+
- pep257: D205
|
|
1125
|
+
|
|
1126
|
+
- # Multi-line docstring closing quotes should be on a separate line
|
|
1127
|
+
- ruff: D209
|
|
1128
|
+
- pycodestyle: D209
|
|
1129
|
+
- pep257: D209
|
|
1130
|
+
|
|
1131
|
+
- # No whitespaces allowed surrounding docstring text
|
|
1132
|
+
- ruff: D210
|
|
1133
|
+
- pycodestyle: D210
|
|
1134
|
+
- pep257: D210
|
|
1135
|
+
|
|
1136
|
+
- # No blank lines allowed before class docstring
|
|
1137
|
+
- ruff: D211
|
|
1138
|
+
- pycodestyle: D211
|
|
1139
|
+
- pep257: D211
|
|
1140
|
+
|
|
1141
|
+
- # Multi-line docstring summary should start at the first line
|
|
1142
|
+
- ruff: D212
|
|
1143
|
+
- pycodestyle: D212
|
|
1144
|
+
- pep257: D212
|
|
1145
|
+
|
|
1146
|
+
- # Multi-line docstring summary should start at the second line
|
|
1147
|
+
- ruff: D213
|
|
1148
|
+
- pycodestyle: D213
|
|
1149
|
+
- pep257: D213
|
|
1150
|
+
|
|
1151
|
+
- # Section is over-indented ("{name}")
|
|
1152
|
+
- ruff: D214
|
|
1153
|
+
- pycodestyle: D214
|
|
1154
|
+
- pep257: D214
|
|
1155
|
+
|
|
1156
|
+
- # Section underline is over-indented ("{name}")
|
|
1157
|
+
- ruff: D215
|
|
1158
|
+
- pycodestyle: D215
|
|
1159
|
+
- pep257: D215
|
|
1160
|
+
|
|
1161
|
+
- # Use triple double quotes """
|
|
1162
|
+
- ruff: D300
|
|
1163
|
+
- pycodestyle: D300
|
|
1164
|
+
- pep257: D300
|
|
1165
|
+
|
|
1166
|
+
- # Use r""" if any backslashes in a docstring
|
|
1167
|
+
- ruff: D301
|
|
1168
|
+
- pycodestyle: D301
|
|
1169
|
+
- pep257: D301
|
|
1170
|
+
|
|
1171
|
+
- # First line should end with a period
|
|
1172
|
+
- ruff: D400
|
|
1173
|
+
- pycodestyle: D400
|
|
1174
|
+
- pep257: D400
|
|
1175
|
+
|
|
1176
|
+
- # First line of docstring should be in imperative mood: "{first_line}"
|
|
1177
|
+
- ruff: D401
|
|
1178
|
+
- pycodestyle: D401
|
|
1179
|
+
- pep257: D401
|
|
1180
|
+
|
|
1181
|
+
- # First line should not be the function's signature
|
|
1182
|
+
- ruff: D402
|
|
1183
|
+
- pycodestyle: D402
|
|
1184
|
+
- pep257: D402
|
|
1185
|
+
|
|
1186
|
+
- # First word of the docstring should be capitalized: {} -> {}
|
|
1187
|
+
- ruff: D403
|
|
1188
|
+
- pycodestyle: D403
|
|
1189
|
+
- pep257: D403
|
|
1190
|
+
|
|
1191
|
+
- # First word of the docstring should not be "This"
|
|
1192
|
+
- ruff: D404
|
|
1193
|
+
- pycodestyle: D404
|
|
1194
|
+
- pep257: D404
|
|
1195
|
+
|
|
1196
|
+
- # Section name should be properly capitalized ("{name}")
|
|
1197
|
+
- ruff: D405
|
|
1198
|
+
- pycodestyle: D405
|
|
1199
|
+
- pep257: D405
|
|
1200
|
+
|
|
1201
|
+
- # Section name should end with a newline ("{name}")
|
|
1202
|
+
- ruff: D406
|
|
1203
|
+
- pycodestyle: D406
|
|
1204
|
+
- pep257: D406
|
|
1205
|
+
|
|
1206
|
+
- # Missing argument description in the docstring for {definition}: {name}
|
|
1207
|
+
- ruff: D407
|
|
1208
|
+
- pycodestyle: D407
|
|
1209
|
+
- pep257: D407
|
|
1210
|
+
|
|
1211
|
+
- # Section underline should be in the line following the section's name ("{name}")
|
|
1212
|
+
- ruff: D408
|
|
1213
|
+
- pycodestyle: D408
|
|
1214
|
+
- pep257: D408
|
|
1215
|
+
|
|
1216
|
+
- # Section underline should match the length of its name ("{name}")
|
|
1217
|
+
- ruff: D409
|
|
1218
|
+
- pycodestyle: D409
|
|
1219
|
+
- pep257: D409
|
|
1220
|
+
|
|
1221
|
+
- # Missing blank line after section ("{name}")
|
|
1222
|
+
- ruff: D410
|
|
1223
|
+
- pycodestyle: D410
|
|
1224
|
+
- pep257: D410
|
|
1225
|
+
|
|
1226
|
+
- # Missing blank line before section ("{name}")
|
|
1227
|
+
- ruff: D411
|
|
1228
|
+
- pycodestyle: D411
|
|
1229
|
+
- pep257: D411
|
|
1230
|
+
|
|
1231
|
+
- # No blank lines allowed between a section header and its content ("{name}")
|
|
1232
|
+
- ruff: D412
|
|
1233
|
+
- pycodestyle: D412
|
|
1234
|
+
- pep257: D412
|
|
1235
|
+
|
|
1236
|
+
- # Missing blank line after last section ("{name}")
|
|
1237
|
+
- ruff: D413
|
|
1238
|
+
- pycodestyle: D413
|
|
1239
|
+
- pep257: D413
|
|
1240
|
+
|
|
1241
|
+
- # Section has no content ("{name}")
|
|
1242
|
+
- ruff: D414
|
|
1243
|
+
- pycodestyle: D414
|
|
1244
|
+
- pep257: D414
|
|
1245
|
+
|
|
1246
|
+
- # First line should end with a period, question mark, or exclamation point
|
|
1247
|
+
- ruff: D415
|
|
1248
|
+
- pycodestyle: D415
|
|
1249
|
+
- pep257: D415
|
|
1250
|
+
|
|
1251
|
+
- # Section name should end with a colon ("{name}")
|
|
1252
|
+
- ruff: D416
|
|
1253
|
+
- pycodestyle: D416
|
|
1254
|
+
- pep257: D416
|
|
1255
|
+
|
|
1256
|
+
- # Missing argument(s) in the docstring for {definition}: {name}
|
|
1257
|
+
- ruff: D417
|
|
1258
|
+
- pycodestyle: D417
|
|
1259
|
+
- pep257: D417
|
|
1260
|
+
|
|
1261
|
+
- # Function decorated with @overload shouldn't contain a docstring
|
|
1262
|
+
- ruff: D418
|
|
1263
|
+
- pycodestyle: D418
|
|
1264
|
+
- pep257: D418
|
|
1265
|
+
|
|
1266
|
+
- # Docstring is empty
|
|
1267
|
+
- ruff: D419
|
|
1268
|
+
- pycodestyle: D419
|
|
1269
|
+
- pep257: D419
|