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