@schemastore/ruff 1.0.1

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 (4) hide show
  1. package/LICENSE +674 -0
  2. package/README.md +14 -0
  3. package/index.d.ts +3888 -0
  4. package/package.json +10 -0
package/index.d.ts ADDED
@@ -0,0 +1,3888 @@
1
+ /* eslint-disable */
2
+
3
+ export type Direction = 'dependencies' | 'dependents';
4
+ export type RuleSelector =
5
+ | 'A'
6
+ | 'A0'
7
+ | 'A00'
8
+ | 'A001'
9
+ | 'A002'
10
+ | 'A003'
11
+ | 'A004'
12
+ | 'A005'
13
+ | 'A006'
14
+ | 'AIR'
15
+ | 'AIR0'
16
+ | 'AIR00'
17
+ | 'AIR001'
18
+ | 'AIR002'
19
+ | 'AIR3'
20
+ | 'AIR30'
21
+ | 'AIR301'
22
+ | 'AIR302'
23
+ | 'AIR303'
24
+ | 'AIR31'
25
+ | 'AIR311'
26
+ | 'AIR312'
27
+ | 'AIR32'
28
+ | 'AIR321'
29
+ | 'ALL'
30
+ | 'ANN'
31
+ | 'ANN0'
32
+ | 'ANN00'
33
+ | 'ANN001'
34
+ | 'ANN002'
35
+ | 'ANN003'
36
+ | 'ANN2'
37
+ | 'ANN20'
38
+ | 'ANN201'
39
+ | 'ANN202'
40
+ | 'ANN204'
41
+ | 'ANN205'
42
+ | 'ANN206'
43
+ | 'ANN4'
44
+ | 'ANN40'
45
+ | 'ANN401'
46
+ | 'ARG'
47
+ | 'ARG0'
48
+ | 'ARG00'
49
+ | 'ARG001'
50
+ | 'ARG002'
51
+ | 'ARG003'
52
+ | 'ARG004'
53
+ | 'ARG005'
54
+ | 'ASYNC'
55
+ | 'ASYNC1'
56
+ | 'ASYNC10'
57
+ | 'ASYNC100'
58
+ | 'ASYNC105'
59
+ | 'ASYNC109'
60
+ | 'ASYNC11'
61
+ | 'ASYNC110'
62
+ | 'ASYNC115'
63
+ | 'ASYNC116'
64
+ | 'ASYNC2'
65
+ | 'ASYNC21'
66
+ | 'ASYNC210'
67
+ | 'ASYNC212'
68
+ | 'ASYNC22'
69
+ | 'ASYNC220'
70
+ | 'ASYNC221'
71
+ | 'ASYNC222'
72
+ | 'ASYNC23'
73
+ | 'ASYNC230'
74
+ | 'ASYNC24'
75
+ | 'ASYNC240'
76
+ | 'ASYNC25'
77
+ | 'ASYNC250'
78
+ | 'ASYNC251'
79
+ | 'B'
80
+ | 'B0'
81
+ | 'B00'
82
+ | 'B002'
83
+ | 'B003'
84
+ | 'B004'
85
+ | 'B005'
86
+ | 'B006'
87
+ | 'B007'
88
+ | 'B008'
89
+ | 'B009'
90
+ | 'B01'
91
+ | 'B010'
92
+ | 'B011'
93
+ | 'B012'
94
+ | 'B013'
95
+ | 'B014'
96
+ | 'B015'
97
+ | 'B016'
98
+ | 'B017'
99
+ | 'B018'
100
+ | 'B019'
101
+ | 'B02'
102
+ | 'B020'
103
+ | 'B021'
104
+ | 'B022'
105
+ | 'B023'
106
+ | 'B024'
107
+ | 'B025'
108
+ | 'B026'
109
+ | 'B027'
110
+ | 'B028'
111
+ | 'B029'
112
+ | 'B03'
113
+ | 'B030'
114
+ | 'B031'
115
+ | 'B032'
116
+ | 'B033'
117
+ | 'B034'
118
+ | 'B035'
119
+ | 'B039'
120
+ | 'B9'
121
+ | 'B90'
122
+ | 'B901'
123
+ | 'B903'
124
+ | 'B904'
125
+ | 'B905'
126
+ | 'B909'
127
+ | 'B91'
128
+ | 'B911'
129
+ | 'B912'
130
+ | 'BLE'
131
+ | 'BLE0'
132
+ | 'BLE00'
133
+ | 'BLE001'
134
+ | 'C'
135
+ | 'C4'
136
+ | 'C40'
137
+ | 'C400'
138
+ | 'C401'
139
+ | 'C402'
140
+ | 'C403'
141
+ | 'C404'
142
+ | 'C405'
143
+ | 'C406'
144
+ | 'C408'
145
+ | 'C409'
146
+ | 'C41'
147
+ | 'C410'
148
+ | 'C411'
149
+ | 'C413'
150
+ | 'C414'
151
+ | 'C415'
152
+ | 'C416'
153
+ | 'C417'
154
+ | 'C418'
155
+ | 'C419'
156
+ | 'C42'
157
+ | 'C420'
158
+ | 'C9'
159
+ | 'C90'
160
+ | 'C901'
161
+ | 'COM'
162
+ | 'COM8'
163
+ | 'COM81'
164
+ | 'COM812'
165
+ | 'COM818'
166
+ | 'COM819'
167
+ | 'CPY'
168
+ | 'CPY0'
169
+ | 'CPY00'
170
+ | 'CPY001'
171
+ | 'D'
172
+ | 'D1'
173
+ | 'D10'
174
+ | 'D100'
175
+ | 'D101'
176
+ | 'D102'
177
+ | 'D103'
178
+ | 'D104'
179
+ | 'D105'
180
+ | 'D106'
181
+ | 'D107'
182
+ | 'D2'
183
+ | 'D20'
184
+ | 'D200'
185
+ | 'D201'
186
+ | 'D202'
187
+ | 'D203'
188
+ | 'D204'
189
+ | 'D205'
190
+ | 'D206'
191
+ | 'D207'
192
+ | 'D208'
193
+ | 'D209'
194
+ | 'D21'
195
+ | 'D210'
196
+ | 'D211'
197
+ | 'D212'
198
+ | 'D213'
199
+ | 'D214'
200
+ | 'D215'
201
+ | 'D3'
202
+ | 'D30'
203
+ | 'D300'
204
+ | 'D301'
205
+ | 'D4'
206
+ | 'D40'
207
+ | 'D400'
208
+ | 'D401'
209
+ | 'D402'
210
+ | 'D403'
211
+ | 'D404'
212
+ | 'D405'
213
+ | 'D406'
214
+ | 'D407'
215
+ | 'D408'
216
+ | 'D409'
217
+ | 'D41'
218
+ | 'D410'
219
+ | 'D411'
220
+ | 'D412'
221
+ | 'D413'
222
+ | 'D414'
223
+ | 'D415'
224
+ | 'D416'
225
+ | 'D417'
226
+ | 'D418'
227
+ | 'D419'
228
+ | 'D42'
229
+ | 'D420'
230
+ | 'DJ'
231
+ | 'DJ0'
232
+ | 'DJ00'
233
+ | 'DJ001'
234
+ | 'DJ003'
235
+ | 'DJ006'
236
+ | 'DJ007'
237
+ | 'DJ008'
238
+ | 'DJ01'
239
+ | 'DJ012'
240
+ | 'DJ013'
241
+ | 'DOC'
242
+ | 'DOC1'
243
+ | 'DOC10'
244
+ | 'DOC102'
245
+ | 'DOC2'
246
+ | 'DOC20'
247
+ | 'DOC201'
248
+ | 'DOC202'
249
+ | 'DOC4'
250
+ | 'DOC40'
251
+ | 'DOC402'
252
+ | 'DOC403'
253
+ | 'DOC5'
254
+ | 'DOC50'
255
+ | 'DOC501'
256
+ | 'DOC502'
257
+ | 'DTZ'
258
+ | 'DTZ0'
259
+ | 'DTZ00'
260
+ | 'DTZ001'
261
+ | 'DTZ002'
262
+ | 'DTZ003'
263
+ | 'DTZ004'
264
+ | 'DTZ005'
265
+ | 'DTZ006'
266
+ | 'DTZ007'
267
+ | 'DTZ01'
268
+ | 'DTZ011'
269
+ | 'DTZ012'
270
+ | 'DTZ9'
271
+ | 'DTZ90'
272
+ | 'DTZ901'
273
+ | 'E'
274
+ | 'E1'
275
+ | 'E10'
276
+ | 'E101'
277
+ | 'E11'
278
+ | 'E111'
279
+ | 'E112'
280
+ | 'E113'
281
+ | 'E114'
282
+ | 'E115'
283
+ | 'E116'
284
+ | 'E117'
285
+ | 'E2'
286
+ | 'E20'
287
+ | 'E201'
288
+ | 'E202'
289
+ | 'E203'
290
+ | 'E204'
291
+ | 'E21'
292
+ | 'E211'
293
+ | 'E22'
294
+ | 'E221'
295
+ | 'E222'
296
+ | 'E223'
297
+ | 'E224'
298
+ | 'E225'
299
+ | 'E226'
300
+ | 'E227'
301
+ | 'E228'
302
+ | 'E23'
303
+ | 'E231'
304
+ | 'E24'
305
+ | 'E241'
306
+ | 'E242'
307
+ | 'E25'
308
+ | 'E251'
309
+ | 'E252'
310
+ | 'E26'
311
+ | 'E261'
312
+ | 'E262'
313
+ | 'E265'
314
+ | 'E266'
315
+ | 'E27'
316
+ | 'E271'
317
+ | 'E272'
318
+ | 'E273'
319
+ | 'E274'
320
+ | 'E275'
321
+ | 'E3'
322
+ | 'E30'
323
+ | 'E301'
324
+ | 'E302'
325
+ | 'E303'
326
+ | 'E304'
327
+ | 'E305'
328
+ | 'E306'
329
+ | 'E4'
330
+ | 'E40'
331
+ | 'E401'
332
+ | 'E402'
333
+ | 'E5'
334
+ | 'E50'
335
+ | 'E501'
336
+ | 'E502'
337
+ | 'E7'
338
+ | 'E70'
339
+ | 'E701'
340
+ | 'E702'
341
+ | 'E703'
342
+ | 'E71'
343
+ | 'E711'
344
+ | 'E712'
345
+ | 'E713'
346
+ | 'E714'
347
+ | 'E72'
348
+ | 'E721'
349
+ | 'E722'
350
+ | 'E73'
351
+ | 'E731'
352
+ | 'E74'
353
+ | 'E741'
354
+ | 'E742'
355
+ | 'E743'
356
+ | 'E9'
357
+ | 'E90'
358
+ | 'E902'
359
+ | 'EM'
360
+ | 'EM1'
361
+ | 'EM10'
362
+ | 'EM101'
363
+ | 'EM102'
364
+ | 'EM103'
365
+ | 'ERA'
366
+ | 'ERA0'
367
+ | 'ERA00'
368
+ | 'ERA001'
369
+ | 'EXE'
370
+ | 'EXE0'
371
+ | 'EXE00'
372
+ | 'EXE001'
373
+ | 'EXE002'
374
+ | 'EXE003'
375
+ | 'EXE004'
376
+ | 'EXE005'
377
+ | 'F'
378
+ | 'F4'
379
+ | 'F40'
380
+ | 'F401'
381
+ | 'F402'
382
+ | 'F403'
383
+ | 'F404'
384
+ | 'F405'
385
+ | 'F406'
386
+ | 'F407'
387
+ | 'F5'
388
+ | 'F50'
389
+ | 'F501'
390
+ | 'F502'
391
+ | 'F503'
392
+ | 'F504'
393
+ | 'F505'
394
+ | 'F506'
395
+ | 'F507'
396
+ | 'F508'
397
+ | 'F509'
398
+ | 'F52'
399
+ | 'F521'
400
+ | 'F522'
401
+ | 'F523'
402
+ | 'F524'
403
+ | 'F525'
404
+ | 'F54'
405
+ | 'F541'
406
+ | 'F6'
407
+ | 'F60'
408
+ | 'F601'
409
+ | 'F602'
410
+ | 'F62'
411
+ | 'F621'
412
+ | 'F622'
413
+ | 'F63'
414
+ | 'F631'
415
+ | 'F632'
416
+ | 'F633'
417
+ | 'F634'
418
+ | 'F7'
419
+ | 'F70'
420
+ | 'F701'
421
+ | 'F702'
422
+ | 'F704'
423
+ | 'F706'
424
+ | 'F707'
425
+ | 'F72'
426
+ | 'F722'
427
+ | 'F8'
428
+ | 'F81'
429
+ | 'F811'
430
+ | 'F82'
431
+ | 'F821'
432
+ | 'F822'
433
+ | 'F823'
434
+ | 'F84'
435
+ | 'F841'
436
+ | 'F842'
437
+ | 'F9'
438
+ | 'F90'
439
+ | 'F901'
440
+ | 'FA'
441
+ | 'FA1'
442
+ | 'FA10'
443
+ | 'FA100'
444
+ | 'FA102'
445
+ | 'FAST'
446
+ | 'FAST0'
447
+ | 'FAST00'
448
+ | 'FAST001'
449
+ | 'FAST002'
450
+ | 'FAST003'
451
+ | 'FBT'
452
+ | 'FBT0'
453
+ | 'FBT00'
454
+ | 'FBT001'
455
+ | 'FBT002'
456
+ | 'FBT003'
457
+ | 'FIX'
458
+ | 'FIX0'
459
+ | 'FIX00'
460
+ | 'FIX001'
461
+ | 'FIX002'
462
+ | 'FIX003'
463
+ | 'FIX004'
464
+ | 'FLY'
465
+ | 'FLY0'
466
+ | 'FLY00'
467
+ | 'FLY002'
468
+ | 'FURB'
469
+ | 'FURB1'
470
+ | 'FURB10'
471
+ | 'FURB101'
472
+ | 'FURB103'
473
+ | 'FURB105'
474
+ | 'FURB11'
475
+ | 'FURB110'
476
+ | 'FURB113'
477
+ | 'FURB116'
478
+ | 'FURB118'
479
+ | 'FURB12'
480
+ | 'FURB122'
481
+ | 'FURB129'
482
+ | 'FURB13'
483
+ | 'FURB131'
484
+ | 'FURB132'
485
+ | 'FURB136'
486
+ | 'FURB14'
487
+ | 'FURB140'
488
+ | 'FURB142'
489
+ | 'FURB145'
490
+ | 'FURB148'
491
+ | 'FURB15'
492
+ | 'FURB152'
493
+ | 'FURB154'
494
+ | 'FURB156'
495
+ | 'FURB157'
496
+ | 'FURB16'
497
+ | 'FURB161'
498
+ | 'FURB162'
499
+ | 'FURB163'
500
+ | 'FURB164'
501
+ | 'FURB166'
502
+ | 'FURB167'
503
+ | 'FURB168'
504
+ | 'FURB169'
505
+ | 'FURB17'
506
+ | 'FURB171'
507
+ | 'FURB177'
508
+ | 'FURB18'
509
+ | 'FURB180'
510
+ | 'FURB181'
511
+ | 'FURB187'
512
+ | 'FURB188'
513
+ | 'FURB189'
514
+ | 'FURB19'
515
+ | 'FURB192'
516
+ | 'G'
517
+ | 'G0'
518
+ | 'G00'
519
+ | 'G001'
520
+ | 'G002'
521
+ | 'G003'
522
+ | 'G004'
523
+ | 'G01'
524
+ | 'G010'
525
+ | 'G1'
526
+ | 'G10'
527
+ | 'G101'
528
+ | 'G2'
529
+ | 'G20'
530
+ | 'G201'
531
+ | 'G202'
532
+ | 'I'
533
+ | 'I0'
534
+ | 'I00'
535
+ | 'I001'
536
+ | 'I002'
537
+ | 'ICN'
538
+ | 'ICN0'
539
+ | 'ICN00'
540
+ | 'ICN001'
541
+ | 'ICN002'
542
+ | 'ICN003'
543
+ | 'INP'
544
+ | 'INP0'
545
+ | 'INP00'
546
+ | 'INP001'
547
+ | 'INT'
548
+ | 'INT0'
549
+ | 'INT00'
550
+ | 'INT001'
551
+ | 'INT002'
552
+ | 'INT003'
553
+ | 'ISC'
554
+ | 'ISC0'
555
+ | 'ISC00'
556
+ | 'ISC001'
557
+ | 'ISC002'
558
+ | 'ISC003'
559
+ | 'ISC004'
560
+ | 'LOG'
561
+ | 'LOG0'
562
+ | 'LOG00'
563
+ | 'LOG001'
564
+ | 'LOG002'
565
+ | 'LOG004'
566
+ | 'LOG007'
567
+ | 'LOG009'
568
+ | 'LOG01'
569
+ | 'LOG014'
570
+ | 'LOG015'
571
+ | 'N'
572
+ | 'N8'
573
+ | 'N80'
574
+ | 'N801'
575
+ | 'N802'
576
+ | 'N803'
577
+ | 'N804'
578
+ | 'N805'
579
+ | 'N806'
580
+ | 'N807'
581
+ | 'N81'
582
+ | 'N811'
583
+ | 'N812'
584
+ | 'N813'
585
+ | 'N814'
586
+ | 'N815'
587
+ | 'N816'
588
+ | 'N817'
589
+ | 'N818'
590
+ | 'N9'
591
+ | 'N99'
592
+ | 'N999'
593
+ | 'NPY'
594
+ | 'NPY0'
595
+ | 'NPY00'
596
+ | 'NPY001'
597
+ | 'NPY002'
598
+ | 'NPY003'
599
+ | 'NPY2'
600
+ | 'NPY20'
601
+ | 'NPY201'
602
+ | 'PD'
603
+ | 'PD0'
604
+ | 'PD00'
605
+ | 'PD002'
606
+ | 'PD003'
607
+ | 'PD004'
608
+ | 'PD007'
609
+ | 'PD008'
610
+ | 'PD009'
611
+ | 'PD01'
612
+ | 'PD010'
613
+ | 'PD011'
614
+ | 'PD012'
615
+ | 'PD013'
616
+ | 'PD015'
617
+ | 'PD1'
618
+ | 'PD10'
619
+ | 'PD101'
620
+ | 'PERF'
621
+ | 'PERF1'
622
+ | 'PERF10'
623
+ | 'PERF101'
624
+ | 'PERF102'
625
+ | 'PERF2'
626
+ | 'PERF20'
627
+ | 'PERF203'
628
+ | 'PERF4'
629
+ | 'PERF40'
630
+ | 'PERF401'
631
+ | 'PERF402'
632
+ | 'PERF403'
633
+ | 'PGH'
634
+ | 'PGH0'
635
+ | 'PGH00'
636
+ | 'PGH003'
637
+ | 'PGH004'
638
+ | 'PGH005'
639
+ | 'PIE'
640
+ | 'PIE7'
641
+ | 'PIE79'
642
+ | 'PIE790'
643
+ | 'PIE794'
644
+ | 'PIE796'
645
+ | 'PIE8'
646
+ | 'PIE80'
647
+ | 'PIE800'
648
+ | 'PIE804'
649
+ | 'PIE807'
650
+ | 'PIE808'
651
+ | 'PIE81'
652
+ | 'PIE810'
653
+ | 'PL'
654
+ | 'PLC'
655
+ | 'PLC0'
656
+ | 'PLC01'
657
+ | 'PLC010'
658
+ | 'PLC0105'
659
+ | 'PLC013'
660
+ | 'PLC0131'
661
+ | 'PLC0132'
662
+ | 'PLC02'
663
+ | 'PLC020'
664
+ | 'PLC0205'
665
+ | 'PLC0206'
666
+ | 'PLC0207'
667
+ | 'PLC0208'
668
+ | 'PLC04'
669
+ | 'PLC041'
670
+ | 'PLC0414'
671
+ | 'PLC0415'
672
+ | 'PLC1'
673
+ | 'PLC18'
674
+ | 'PLC180'
675
+ | 'PLC1802'
676
+ | 'PLC19'
677
+ | 'PLC190'
678
+ | 'PLC1901'
679
+ | 'PLC2'
680
+ | 'PLC24'
681
+ | 'PLC240'
682
+ | 'PLC2401'
683
+ | 'PLC2403'
684
+ | 'PLC27'
685
+ | 'PLC270'
686
+ | 'PLC2701'
687
+ | 'PLC28'
688
+ | 'PLC280'
689
+ | 'PLC2801'
690
+ | 'PLC3'
691
+ | 'PLC30'
692
+ | 'PLC300'
693
+ | 'PLC3002'
694
+ | 'PLE'
695
+ | 'PLE0'
696
+ | 'PLE01'
697
+ | 'PLE010'
698
+ | 'PLE0100'
699
+ | 'PLE0101'
700
+ | 'PLE011'
701
+ | 'PLE0115'
702
+ | 'PLE0116'
703
+ | 'PLE0117'
704
+ | 'PLE0118'
705
+ | 'PLE02'
706
+ | 'PLE023'
707
+ | 'PLE0237'
708
+ | 'PLE024'
709
+ | 'PLE0241'
710
+ | 'PLE03'
711
+ | 'PLE030'
712
+ | 'PLE0302'
713
+ | 'PLE0303'
714
+ | 'PLE0304'
715
+ | 'PLE0305'
716
+ | 'PLE0307'
717
+ | 'PLE0308'
718
+ | 'PLE0309'
719
+ | 'PLE06'
720
+ | 'PLE060'
721
+ | 'PLE0604'
722
+ | 'PLE0605'
723
+ | 'PLE064'
724
+ | 'PLE0643'
725
+ | 'PLE07'
726
+ | 'PLE070'
727
+ | 'PLE0704'
728
+ | 'PLE1'
729
+ | 'PLE11'
730
+ | 'PLE113'
731
+ | 'PLE1132'
732
+ | 'PLE114'
733
+ | 'PLE1141'
734
+ | 'PLE1142'
735
+ | 'PLE12'
736
+ | 'PLE120'
737
+ | 'PLE1205'
738
+ | 'PLE1206'
739
+ | 'PLE13'
740
+ | 'PLE130'
741
+ | 'PLE1300'
742
+ | 'PLE1307'
743
+ | 'PLE131'
744
+ | 'PLE1310'
745
+ | 'PLE15'
746
+ | 'PLE150'
747
+ | 'PLE1507'
748
+ | 'PLE151'
749
+ | 'PLE1519'
750
+ | 'PLE152'
751
+ | 'PLE1520'
752
+ | 'PLE17'
753
+ | 'PLE170'
754
+ | 'PLE1700'
755
+ | 'PLE2'
756
+ | 'PLE25'
757
+ | 'PLE250'
758
+ | 'PLE2502'
759
+ | 'PLE251'
760
+ | 'PLE2510'
761
+ | 'PLE2512'
762
+ | 'PLE2513'
763
+ | 'PLE2514'
764
+ | 'PLE2515'
765
+ | 'PLE4'
766
+ | 'PLE47'
767
+ | 'PLE470'
768
+ | 'PLE4703'
769
+ | 'PLR'
770
+ | 'PLR0'
771
+ | 'PLR01'
772
+ | 'PLR012'
773
+ | 'PLR0124'
774
+ | 'PLR013'
775
+ | 'PLR0133'
776
+ | 'PLR02'
777
+ | 'PLR020'
778
+ | 'PLR0202'
779
+ | 'PLR0203'
780
+ | 'PLR0206'
781
+ | 'PLR04'
782
+ | 'PLR040'
783
+ | 'PLR0402'
784
+ | 'PLR09'
785
+ | 'PLR090'
786
+ | 'PLR0904'
787
+ | 'PLR091'
788
+ | 'PLR0911'
789
+ | 'PLR0912'
790
+ | 'PLR0913'
791
+ | 'PLR0914'
792
+ | 'PLR0915'
793
+ | 'PLR0916'
794
+ | 'PLR0917'
795
+ | 'PLR1'
796
+ | 'PLR17'
797
+ | 'PLR170'
798
+ | 'PLR1702'
799
+ | 'PLR1704'
800
+ | 'PLR1708'
801
+ | 'PLR171'
802
+ | 'PLR1711'
803
+ | 'PLR1712'
804
+ | 'PLR1714'
805
+ | 'PLR1716'
806
+ | 'PLR172'
807
+ | 'PLR1722'
808
+ | 'PLR173'
809
+ | 'PLR1730'
810
+ | 'PLR1733'
811
+ | 'PLR1736'
812
+ | 'PLR2'
813
+ | 'PLR20'
814
+ | 'PLR200'
815
+ | 'PLR2004'
816
+ | 'PLR204'
817
+ | 'PLR2044'
818
+ | 'PLR5'
819
+ | 'PLR55'
820
+ | 'PLR550'
821
+ | 'PLR5501'
822
+ | 'PLR6'
823
+ | 'PLR61'
824
+ | 'PLR610'
825
+ | 'PLR6104'
826
+ | 'PLR62'
827
+ | 'PLR620'
828
+ | 'PLR6201'
829
+ | 'PLR63'
830
+ | 'PLR630'
831
+ | 'PLR6301'
832
+ | 'PLW'
833
+ | 'PLW0'
834
+ | 'PLW01'
835
+ | 'PLW010'
836
+ | 'PLW0108'
837
+ | 'PLW012'
838
+ | 'PLW0120'
839
+ | 'PLW0127'
840
+ | 'PLW0128'
841
+ | 'PLW0129'
842
+ | 'PLW013'
843
+ | 'PLW0131'
844
+ | 'PLW0133'
845
+ | 'PLW017'
846
+ | 'PLW0177'
847
+ | 'PLW02'
848
+ | 'PLW021'
849
+ | 'PLW0211'
850
+ | 'PLW024'
851
+ | 'PLW0244'
852
+ | 'PLW0245'
853
+ | 'PLW04'
854
+ | 'PLW040'
855
+ | 'PLW0406'
856
+ | 'PLW06'
857
+ | 'PLW060'
858
+ | 'PLW0602'
859
+ | 'PLW0603'
860
+ | 'PLW0604'
861
+ | 'PLW064'
862
+ | 'PLW0642'
863
+ | 'PLW07'
864
+ | 'PLW071'
865
+ | 'PLW0711'
866
+ | 'PLW1'
867
+ | 'PLW15'
868
+ | 'PLW150'
869
+ | 'PLW1501'
870
+ | 'PLW1507'
871
+ | 'PLW1508'
872
+ | 'PLW1509'
873
+ | 'PLW151'
874
+ | 'PLW1510'
875
+ | 'PLW1514'
876
+ | 'PLW16'
877
+ | 'PLW164'
878
+ | 'PLW1641'
879
+ | 'PLW2'
880
+ | 'PLW21'
881
+ | 'PLW210'
882
+ | 'PLW2101'
883
+ | 'PLW29'
884
+ | 'PLW290'
885
+ | 'PLW2901'
886
+ | 'PLW3'
887
+ | 'PLW32'
888
+ | 'PLW320'
889
+ | 'PLW3201'
890
+ | 'PLW33'
891
+ | 'PLW330'
892
+ | 'PLW3301'
893
+ | 'PT'
894
+ | 'PT0'
895
+ | 'PT00'
896
+ | 'PT001'
897
+ | 'PT002'
898
+ | 'PT003'
899
+ | 'PT006'
900
+ | 'PT007'
901
+ | 'PT008'
902
+ | 'PT009'
903
+ | 'PT01'
904
+ | 'PT010'
905
+ | 'PT011'
906
+ | 'PT012'
907
+ | 'PT013'
908
+ | 'PT014'
909
+ | 'PT015'
910
+ | 'PT016'
911
+ | 'PT017'
912
+ | 'PT018'
913
+ | 'PT019'
914
+ | 'PT02'
915
+ | 'PT020'
916
+ | 'PT021'
917
+ | 'PT022'
918
+ | 'PT023'
919
+ | 'PT024'
920
+ | 'PT025'
921
+ | 'PT026'
922
+ | 'PT027'
923
+ | 'PT028'
924
+ | 'PT029'
925
+ | 'PT03'
926
+ | 'PT030'
927
+ | 'PT031'
928
+ | 'PTH'
929
+ | 'PTH1'
930
+ | 'PTH10'
931
+ | 'PTH100'
932
+ | 'PTH101'
933
+ | 'PTH102'
934
+ | 'PTH103'
935
+ | 'PTH104'
936
+ | 'PTH105'
937
+ | 'PTH106'
938
+ | 'PTH107'
939
+ | 'PTH108'
940
+ | 'PTH109'
941
+ | 'PTH11'
942
+ | 'PTH110'
943
+ | 'PTH111'
944
+ | 'PTH112'
945
+ | 'PTH113'
946
+ | 'PTH114'
947
+ | 'PTH115'
948
+ | 'PTH116'
949
+ | 'PTH117'
950
+ | 'PTH118'
951
+ | 'PTH119'
952
+ | 'PTH12'
953
+ | 'PTH120'
954
+ | 'PTH121'
955
+ | 'PTH122'
956
+ | 'PTH123'
957
+ | 'PTH124'
958
+ | 'PTH2'
959
+ | 'PTH20'
960
+ | 'PTH201'
961
+ | 'PTH202'
962
+ | 'PTH203'
963
+ | 'PTH204'
964
+ | 'PTH205'
965
+ | 'PTH206'
966
+ | 'PTH207'
967
+ | 'PTH208'
968
+ | 'PTH21'
969
+ | 'PTH210'
970
+ | 'PTH211'
971
+ | 'PYI'
972
+ | 'PYI0'
973
+ | 'PYI00'
974
+ | 'PYI001'
975
+ | 'PYI002'
976
+ | 'PYI003'
977
+ | 'PYI004'
978
+ | 'PYI005'
979
+ | 'PYI006'
980
+ | 'PYI007'
981
+ | 'PYI008'
982
+ | 'PYI009'
983
+ | 'PYI01'
984
+ | 'PYI010'
985
+ | 'PYI011'
986
+ | 'PYI012'
987
+ | 'PYI013'
988
+ | 'PYI014'
989
+ | 'PYI015'
990
+ | 'PYI016'
991
+ | 'PYI017'
992
+ | 'PYI018'
993
+ | 'PYI019'
994
+ | 'PYI02'
995
+ | 'PYI020'
996
+ | 'PYI021'
997
+ | 'PYI024'
998
+ | 'PYI025'
999
+ | 'PYI026'
1000
+ | 'PYI029'
1001
+ | 'PYI03'
1002
+ | 'PYI030'
1003
+ | 'PYI032'
1004
+ | 'PYI033'
1005
+ | 'PYI034'
1006
+ | 'PYI035'
1007
+ | 'PYI036'
1008
+ | 'PYI04'
1009
+ | 'PYI041'
1010
+ | 'PYI042'
1011
+ | 'PYI043'
1012
+ | 'PYI044'
1013
+ | 'PYI045'
1014
+ | 'PYI046'
1015
+ | 'PYI047'
1016
+ | 'PYI048'
1017
+ | 'PYI049'
1018
+ | 'PYI05'
1019
+ | 'PYI050'
1020
+ | 'PYI051'
1021
+ | 'PYI052'
1022
+ | 'PYI053'
1023
+ | 'PYI054'
1024
+ | 'PYI055'
1025
+ | 'PYI056'
1026
+ | 'PYI057'
1027
+ | 'PYI058'
1028
+ | 'PYI059'
1029
+ | 'PYI06'
1030
+ | 'PYI061'
1031
+ | 'PYI062'
1032
+ | 'PYI063'
1033
+ | 'PYI064'
1034
+ | 'PYI066'
1035
+ | 'Q'
1036
+ | 'Q0'
1037
+ | 'Q00'
1038
+ | 'Q000'
1039
+ | 'Q001'
1040
+ | 'Q002'
1041
+ | 'Q003'
1042
+ | 'Q004'
1043
+ | 'RET'
1044
+ | 'RET5'
1045
+ | 'RET50'
1046
+ | 'RET501'
1047
+ | 'RET502'
1048
+ | 'RET503'
1049
+ | 'RET504'
1050
+ | 'RET505'
1051
+ | 'RET506'
1052
+ | 'RET507'
1053
+ | 'RET508'
1054
+ | 'RSE'
1055
+ | 'RSE1'
1056
+ | 'RSE10'
1057
+ | 'RSE102'
1058
+ | 'RUF'
1059
+ | 'RUF0'
1060
+ | 'RUF00'
1061
+ | 'RUF001'
1062
+ | 'RUF002'
1063
+ | 'RUF003'
1064
+ | 'RUF005'
1065
+ | 'RUF006'
1066
+ | 'RUF007'
1067
+ | 'RUF008'
1068
+ | 'RUF009'
1069
+ | 'RUF01'
1070
+ | 'RUF010'
1071
+ | 'RUF012'
1072
+ | 'RUF013'
1073
+ | 'RUF015'
1074
+ | 'RUF016'
1075
+ | 'RUF017'
1076
+ | 'RUF018'
1077
+ | 'RUF019'
1078
+ | 'RUF02'
1079
+ | 'RUF020'
1080
+ | 'RUF021'
1081
+ | 'RUF022'
1082
+ | 'RUF023'
1083
+ | 'RUF024'
1084
+ | 'RUF026'
1085
+ | 'RUF027'
1086
+ | 'RUF028'
1087
+ | 'RUF029'
1088
+ | 'RUF03'
1089
+ | 'RUF030'
1090
+ | 'RUF031'
1091
+ | 'RUF032'
1092
+ | 'RUF033'
1093
+ | 'RUF034'
1094
+ | 'RUF036'
1095
+ | 'RUF037'
1096
+ | 'RUF038'
1097
+ | 'RUF039'
1098
+ | 'RUF04'
1099
+ | 'RUF040'
1100
+ | 'RUF041'
1101
+ | 'RUF043'
1102
+ | 'RUF045'
1103
+ | 'RUF046'
1104
+ | 'RUF047'
1105
+ | 'RUF048'
1106
+ | 'RUF049'
1107
+ | 'RUF05'
1108
+ | 'RUF051'
1109
+ | 'RUF052'
1110
+ | 'RUF053'
1111
+ | 'RUF054'
1112
+ | 'RUF055'
1113
+ | 'RUF056'
1114
+ | 'RUF057'
1115
+ | 'RUF058'
1116
+ | 'RUF059'
1117
+ | 'RUF06'
1118
+ | 'RUF060'
1119
+ | 'RUF061'
1120
+ | 'RUF063'
1121
+ | 'RUF064'
1122
+ | 'RUF065'
1123
+ | 'RUF066'
1124
+ | 'RUF067'
1125
+ | 'RUF068'
1126
+ | 'RUF069'
1127
+ | 'RUF07'
1128
+ | 'RUF070'
1129
+ | 'RUF1'
1130
+ | 'RUF10'
1131
+ | 'RUF100'
1132
+ | 'RUF101'
1133
+ | 'RUF102'
1134
+ | 'RUF103'
1135
+ | 'RUF104'
1136
+ | 'RUF2'
1137
+ | 'RUF20'
1138
+ | 'RUF200'
1139
+ | 'S'
1140
+ | 'S1'
1141
+ | 'S10'
1142
+ | 'S101'
1143
+ | 'S102'
1144
+ | 'S103'
1145
+ | 'S104'
1146
+ | 'S105'
1147
+ | 'S106'
1148
+ | 'S107'
1149
+ | 'S108'
1150
+ | 'S11'
1151
+ | 'S110'
1152
+ | 'S112'
1153
+ | 'S113'
1154
+ | 'S2'
1155
+ | 'S20'
1156
+ | 'S201'
1157
+ | 'S202'
1158
+ | 'S3'
1159
+ | 'S30'
1160
+ | 'S301'
1161
+ | 'S302'
1162
+ | 'S303'
1163
+ | 'S304'
1164
+ | 'S305'
1165
+ | 'S306'
1166
+ | 'S307'
1167
+ | 'S308'
1168
+ | 'S31'
1169
+ | 'S310'
1170
+ | 'S311'
1171
+ | 'S312'
1172
+ | 'S313'
1173
+ | 'S314'
1174
+ | 'S315'
1175
+ | 'S316'
1176
+ | 'S317'
1177
+ | 'S318'
1178
+ | 'S319'
1179
+ | 'S32'
1180
+ | 'S321'
1181
+ | 'S323'
1182
+ | 'S324'
1183
+ | 'S4'
1184
+ | 'S40'
1185
+ | 'S401'
1186
+ | 'S402'
1187
+ | 'S403'
1188
+ | 'S404'
1189
+ | 'S405'
1190
+ | 'S406'
1191
+ | 'S407'
1192
+ | 'S408'
1193
+ | 'S409'
1194
+ | 'S41'
1195
+ | 'S411'
1196
+ | 'S412'
1197
+ | 'S413'
1198
+ | 'S415'
1199
+ | 'S5'
1200
+ | 'S50'
1201
+ | 'S501'
1202
+ | 'S502'
1203
+ | 'S503'
1204
+ | 'S504'
1205
+ | 'S505'
1206
+ | 'S506'
1207
+ | 'S507'
1208
+ | 'S508'
1209
+ | 'S509'
1210
+ | 'S6'
1211
+ | 'S60'
1212
+ | 'S601'
1213
+ | 'S602'
1214
+ | 'S603'
1215
+ | 'S604'
1216
+ | 'S605'
1217
+ | 'S606'
1218
+ | 'S607'
1219
+ | 'S608'
1220
+ | 'S609'
1221
+ | 'S61'
1222
+ | 'S610'
1223
+ | 'S611'
1224
+ | 'S612'
1225
+ | 'S7'
1226
+ | 'S70'
1227
+ | 'S701'
1228
+ | 'S702'
1229
+ | 'S704'
1230
+ | 'SIM'
1231
+ | 'SIM1'
1232
+ | 'SIM10'
1233
+ | 'SIM101'
1234
+ | 'SIM102'
1235
+ | 'SIM103'
1236
+ | 'SIM105'
1237
+ | 'SIM107'
1238
+ | 'SIM108'
1239
+ | 'SIM109'
1240
+ | 'SIM11'
1241
+ | 'SIM110'
1242
+ | 'SIM112'
1243
+ | 'SIM113'
1244
+ | 'SIM114'
1245
+ | 'SIM115'
1246
+ | 'SIM116'
1247
+ | 'SIM117'
1248
+ | 'SIM118'
1249
+ | 'SIM2'
1250
+ | 'SIM20'
1251
+ | 'SIM201'
1252
+ | 'SIM202'
1253
+ | 'SIM208'
1254
+ | 'SIM21'
1255
+ | 'SIM210'
1256
+ | 'SIM211'
1257
+ | 'SIM212'
1258
+ | 'SIM22'
1259
+ | 'SIM220'
1260
+ | 'SIM221'
1261
+ | 'SIM222'
1262
+ | 'SIM223'
1263
+ | 'SIM3'
1264
+ | 'SIM30'
1265
+ | 'SIM300'
1266
+ | 'SIM4'
1267
+ | 'SIM40'
1268
+ | 'SIM401'
1269
+ | 'SIM9'
1270
+ | 'SIM90'
1271
+ | 'SIM905'
1272
+ | 'SIM91'
1273
+ | 'SIM910'
1274
+ | 'SIM911'
1275
+ | 'SLF'
1276
+ | 'SLF0'
1277
+ | 'SLF00'
1278
+ | 'SLF001'
1279
+ | 'SLOT'
1280
+ | 'SLOT0'
1281
+ | 'SLOT00'
1282
+ | 'SLOT000'
1283
+ | 'SLOT001'
1284
+ | 'SLOT002'
1285
+ | 'T'
1286
+ | 'T1'
1287
+ | 'T10'
1288
+ | 'T100'
1289
+ | 'T2'
1290
+ | 'T20'
1291
+ | 'T201'
1292
+ | 'T203'
1293
+ | 'TC'
1294
+ | 'TC0'
1295
+ | 'TC00'
1296
+ | 'TC001'
1297
+ | 'TC002'
1298
+ | 'TC003'
1299
+ | 'TC004'
1300
+ | 'TC005'
1301
+ | 'TC006'
1302
+ | 'TC007'
1303
+ | 'TC008'
1304
+ | 'TC01'
1305
+ | 'TC010'
1306
+ | 'TD'
1307
+ | 'TD0'
1308
+ | 'TD00'
1309
+ | 'TD001'
1310
+ | 'TD002'
1311
+ | 'TD003'
1312
+ | 'TD004'
1313
+ | 'TD005'
1314
+ | 'TD006'
1315
+ | 'TD007'
1316
+ | 'TID'
1317
+ | 'TID2'
1318
+ | 'TID25'
1319
+ | 'TID251'
1320
+ | 'TID252'
1321
+ | 'TID253'
1322
+ | 'TRY'
1323
+ | 'TRY0'
1324
+ | 'TRY00'
1325
+ | 'TRY002'
1326
+ | 'TRY003'
1327
+ | 'TRY004'
1328
+ | 'TRY2'
1329
+ | 'TRY20'
1330
+ | 'TRY201'
1331
+ | 'TRY203'
1332
+ | 'TRY3'
1333
+ | 'TRY30'
1334
+ | 'TRY300'
1335
+ | 'TRY301'
1336
+ | 'TRY4'
1337
+ | 'TRY40'
1338
+ | 'TRY400'
1339
+ | 'TRY401'
1340
+ | 'UP'
1341
+ | 'UP0'
1342
+ | 'UP00'
1343
+ | 'UP001'
1344
+ | 'UP003'
1345
+ | 'UP004'
1346
+ | 'UP005'
1347
+ | 'UP006'
1348
+ | 'UP007'
1349
+ | 'UP008'
1350
+ | 'UP009'
1351
+ | 'UP01'
1352
+ | 'UP010'
1353
+ | 'UP011'
1354
+ | 'UP012'
1355
+ | 'UP013'
1356
+ | 'UP014'
1357
+ | 'UP015'
1358
+ | 'UP017'
1359
+ | 'UP018'
1360
+ | 'UP019'
1361
+ | 'UP02'
1362
+ | 'UP020'
1363
+ | 'UP021'
1364
+ | 'UP022'
1365
+ | 'UP023'
1366
+ | 'UP024'
1367
+ | 'UP025'
1368
+ | 'UP026'
1369
+ | 'UP028'
1370
+ | 'UP029'
1371
+ | 'UP03'
1372
+ | 'UP030'
1373
+ | 'UP031'
1374
+ | 'UP032'
1375
+ | 'UP033'
1376
+ | 'UP034'
1377
+ | 'UP035'
1378
+ | 'UP036'
1379
+ | 'UP037'
1380
+ | 'UP039'
1381
+ | 'UP04'
1382
+ | 'UP040'
1383
+ | 'UP041'
1384
+ | 'UP042'
1385
+ | 'UP043'
1386
+ | 'UP044'
1387
+ | 'UP045'
1388
+ | 'UP046'
1389
+ | 'UP047'
1390
+ | 'UP049'
1391
+ | 'UP05'
1392
+ | 'UP050'
1393
+ | 'W'
1394
+ | 'W1'
1395
+ | 'W19'
1396
+ | 'W191'
1397
+ | 'W2'
1398
+ | 'W29'
1399
+ | 'W291'
1400
+ | 'W292'
1401
+ | 'W293'
1402
+ | 'W3'
1403
+ | 'W39'
1404
+ | 'W391'
1405
+ | 'W5'
1406
+ | 'W50'
1407
+ | 'W505'
1408
+ | 'W6'
1409
+ | 'W60'
1410
+ | 'W605'
1411
+ | 'YTT'
1412
+ | 'YTT1'
1413
+ | 'YTT10'
1414
+ | 'YTT101'
1415
+ | 'YTT102'
1416
+ | 'YTT103'
1417
+ | 'YTT2'
1418
+ | 'YTT20'
1419
+ | 'YTT201'
1420
+ | 'YTT202'
1421
+ | 'YTT203'
1422
+ | 'YTT204'
1423
+ | 'YTT3'
1424
+ | 'YTT30'
1425
+ | 'YTT301'
1426
+ | 'YTT302'
1427
+ | 'YTT303';
1428
+ export type Language = ('python' | 'pyi' | 'ipynb' | 'markdown') | undefined;
1429
+ export type Alias = string | undefined;
1430
+ export type BannedAliases = string[] | undefined;
1431
+ export type ParametrizeNameType = 'csv' | 'tuple' | 'list';
1432
+ export type ParametrizeValuesRowType = 'tuple' | 'list';
1433
+ export type ParametrizeValuesType = 'tuple' | 'list';
1434
+ export type Quote = 'double' | 'single';
1435
+ export type Strictness = 'parents' | 'all';
1436
+ export type DocstringCodeLineWidth = LineWidth | 'dynamic';
1437
+ /**
1438
+ * The maximum visual width to which the formatter should try to limit a line.
1439
+ */
1440
+ export type LineWidth = number;
1441
+ export type IndentStyle = 'tab' | 'space';
1442
+ export type LineEnding = 'auto' | 'lf' | 'cr-lf' | 'native';
1443
+ export type QuoteStyle = 'single' | 'double' | 'preserve';
1444
+ /**
1445
+ * The size of a tab.
1446
+ */
1447
+ export type IndentWidth = number;
1448
+ export type ImportSection = ImportType | string;
1449
+ export type ImportType = 'future' | 'standard-library' | 'third-party' | 'first-party' | 'local-folder';
1450
+ export type RelativeImportsOrder = 'closest-to-furthest' | 'furthest-to-closest';
1451
+ export type NameImports = string;
1452
+ /**
1453
+ * The length of a line of text that is considered too long.
1454
+ *
1455
+ * The allowed range of values is 1..=320
1456
+ */
1457
+ export type LineLength = number;
1458
+ export type Convention = 'google' | 'numpy' | 'pep257';
1459
+ export type ConstantType = 'bytes' | 'complex' | 'float' | 'int' | 'str';
1460
+ export type OutputFormat =
1461
+ | 'concise'
1462
+ | 'full'
1463
+ | 'json'
1464
+ | 'json-lines'
1465
+ | 'junit'
1466
+ | 'grouped'
1467
+ | 'github'
1468
+ | 'gitlab'
1469
+ | 'pylint'
1470
+ | 'rdjson'
1471
+ | 'azure'
1472
+ | 'sarif';
1473
+ export type PythonVersion =
1474
+ | ('py37' | 'py38' | 'py39' | 'py310' | 'py311' | 'py312' | 'py313' | 'py314' | 'py315')
1475
+ | undefined;
1476
+ export type RequiredVersion = string;
1477
+
1478
+ export interface Options {
1479
+ /**
1480
+ * @deprecated
1481
+ * A list of allowed "confusable" Unicode characters to ignore when
1482
+ * enforcing `RUF001`, `RUF002`, and `RUF003`.
1483
+ */
1484
+ 'allowed-confusables'?: string[] | null;
1485
+ /**
1486
+ * Options to configure import map generation.
1487
+ */
1488
+ analyze?: AnalyzeOptions | null;
1489
+ /**
1490
+ * A list of builtins to treat as defined references, in addition to the
1491
+ * system builtins.
1492
+ */
1493
+ builtins?: string[] | null;
1494
+ /**
1495
+ * A path to the cache directory.
1496
+ *
1497
+ * By default, Ruff stores cache results in a `.ruff_cache` directory in
1498
+ * the current project root.
1499
+ *
1500
+ * However, Ruff will also respect the `RUFF_CACHE_DIR` environment
1501
+ * variable, which takes precedence over that default.
1502
+ *
1503
+ * This setting will override even the `RUFF_CACHE_DIR` environment
1504
+ * variable, if set.
1505
+ */
1506
+ 'cache-dir'?: string | null;
1507
+ /**
1508
+ * @deprecated
1509
+ * A regular expression used to identify "dummy" variables, or those which
1510
+ * should be ignored when enforcing (e.g.) unused-variable rules. The
1511
+ * default expression matches `_`, `__`, and `_var`, but not `_var_`.
1512
+ */
1513
+ 'dummy-variable-rgx'?: string | null;
1514
+ /**
1515
+ * A list of file patterns to exclude from formatting and linting.
1516
+ *
1517
+ * Exclusions are based on globs, and can be either:
1518
+ *
1519
+ * - Single-path patterns, like `.mypy_cache` (to exclude any directory
1520
+ * named `.mypy_cache` in the tree), `foo.py` (to exclude any file named
1521
+ * `foo.py`), or `foo_*.py` (to exclude any file matching `foo_*.py` ).
1522
+ * - Relative patterns, like `directory/foo.py` (to exclude that specific
1523
+ * file) or `directory/*.py` (to exclude any Python files in
1524
+ * `directory`). Note that these paths are relative to the project root
1525
+ * (e.g., the directory containing your `pyproject.toml`).
1526
+ *
1527
+ * For more information on the glob syntax, refer to the [`globset` documentation](https://docs.rs/globset/latest/globset/#syntax).
1528
+ *
1529
+ * Note that you'll typically want to use
1530
+ * [`extend-exclude`](#extend-exclude) to modify the excluded paths.
1531
+ */
1532
+ exclude?: string[] | null;
1533
+ /**
1534
+ * @deprecated
1535
+ * Whether to require exact codes to select preview rules. When enabled,
1536
+ * preview rules will not be selected by prefixes — the full code of each
1537
+ * preview rule will be required to enable the rule.
1538
+ */
1539
+ 'explicit-preview-rules'?: boolean | null;
1540
+ /**
1541
+ * A path to a local `pyproject.toml` or `ruff.toml` file to merge into this
1542
+ * configuration. User home directory and environment variables will be
1543
+ * expanded.
1544
+ *
1545
+ * To resolve the current configuration file, Ruff will first load
1546
+ * this base configuration file, then merge in properties defined
1547
+ * in the current configuration file. Most settings follow simple override
1548
+ * behavior where the child value replaces the parent value. However,
1549
+ * rule selection (`lint.select` and `lint.ignore`) has special merging
1550
+ * behavior: if the child configuration specifies `lint.select`, it
1551
+ * establishes a new baseline rule set and the parent's `lint.ignore`
1552
+ * rules are discarded; if the child configuration omits `lint.select`,
1553
+ * the parent's rule selection is inherited and both parent and child
1554
+ * `lint.ignore` rules are accumulated together.
1555
+ */
1556
+ extend?: string | null;
1557
+ /**
1558
+ * A list of file patterns to omit from formatting and linting, in addition to those
1559
+ * specified by [`exclude`](#exclude).
1560
+ *
1561
+ * Exclusions are based on globs, and can be either:
1562
+ *
1563
+ * - Single-path patterns, like `.mypy_cache` (to exclude any directory
1564
+ * named `.mypy_cache` in the tree), `foo.py` (to exclude any file named
1565
+ * `foo.py`), or `foo_*.py` (to exclude any file matching `foo_*.py` ).
1566
+ * - Relative patterns, like `directory/foo.py` (to exclude that specific
1567
+ * file) or `directory/*.py` (to exclude any Python files in
1568
+ * `directory`). Note that these paths are relative to the project root
1569
+ * (e.g., the directory containing your `pyproject.toml`).
1570
+ *
1571
+ * For more information on the glob syntax, refer to the [`globset` documentation](https://docs.rs/globset/latest/globset/#syntax).
1572
+ */
1573
+ 'extend-exclude'?: string[] | null;
1574
+ /**
1575
+ * @deprecated
1576
+ * A list of rule codes or prefixes to consider fixable, in addition to those
1577
+ * specified by [`fixable`](#lint_fixable).
1578
+ */
1579
+ 'extend-fixable'?: RuleSelector[] | null;
1580
+ /**
1581
+ * @deprecated
1582
+ * A list of rule codes or prefixes to ignore, in addition to those
1583
+ * specified by `ignore`.
1584
+ */
1585
+ 'extend-ignore'?: RuleSelector[] | null;
1586
+ /**
1587
+ * A list of file patterns to include when linting, in addition to those
1588
+ * specified by [`include`](#include).
1589
+ *
1590
+ * Inclusion are based on globs, and should be single-path patterns, like
1591
+ * `*.pyw`, to include any file with the `.pyw` extension.
1592
+ *
1593
+ * For more information on the glob syntax, refer to the [`globset` documentation](https://docs.rs/globset/latest/globset/#syntax).
1594
+ */
1595
+ 'extend-include'?: string[] | null;
1596
+ /**
1597
+ * @deprecated
1598
+ * A list of mappings from file pattern to rule codes or prefixes to
1599
+ * exclude, in addition to any rules excluded by [`per-file-ignores`](#lint_per-file-ignores).
1600
+ */
1601
+ 'extend-per-file-ignores'?: {
1602
+ [k: string]: RuleSelector[] | undefined;
1603
+ } | null;
1604
+ /**
1605
+ * @deprecated
1606
+ * A list of rule codes or prefixes for which unsafe fixes should be considered
1607
+ * safe.
1608
+ */
1609
+ 'extend-safe-fixes'?: RuleSelector[] | null;
1610
+ /**
1611
+ * @deprecated
1612
+ * A list of rule codes or prefixes to enable, in addition to those
1613
+ * specified by [`select`](#lint_select).
1614
+ */
1615
+ 'extend-select'?: RuleSelector[] | null;
1616
+ /**
1617
+ * @deprecated
1618
+ * A list of rule codes or prefixes to consider non-auto-fixable, in addition to those
1619
+ * specified by [`unfixable`](#lint_unfixable).
1620
+ */
1621
+ 'extend-unfixable'?: RuleSelector[] | null;
1622
+ /**
1623
+ * @deprecated
1624
+ * A list of rule codes or prefixes for which safe fixes should be considered
1625
+ * unsafe.
1626
+ */
1627
+ 'extend-unsafe-fixes'?: RuleSelector[] | null;
1628
+ /**
1629
+ * A mapping of custom file extensions to known file types (overridden
1630
+ * by the `--extension` command-line flag).
1631
+ *
1632
+ * Supported file types include `python`, `pyi`, `ipynb`, and `markdown`.
1633
+ *
1634
+ * Any file extensions listed here will be automatically added to the
1635
+ * default `include` list as a `*.{ext}` glob, so that they are linted
1636
+ * and formatted without needing any additional configuration settings.
1637
+ */
1638
+ extension?: {
1639
+ [k: string]: Language | undefined;
1640
+ } | null;
1641
+ /**
1642
+ * @deprecated
1643
+ * A list of rule codes or prefixes that are unsupported by Ruff, but should be
1644
+ * preserved when (e.g.) validating `# noqa` directives. Useful for
1645
+ * retaining `# noqa` directives that cover plugins not yet implemented
1646
+ * by Ruff.
1647
+ */
1648
+ external?: string[] | null;
1649
+ /**
1650
+ * Enable fix behavior by-default when running `ruff` (overridden
1651
+ * by the `--fix` and `--no-fix` command-line flags).
1652
+ * Only includes automatic fixes unless `--unsafe-fixes` is provided.
1653
+ */
1654
+ fix?: boolean | null;
1655
+ /**
1656
+ * Like [`fix`](#fix), but disables reporting on leftover violation. Implies [`fix`](#fix).
1657
+ */
1658
+ 'fix-only'?: boolean | null;
1659
+ /**
1660
+ * @deprecated
1661
+ * A list of rule codes or prefixes to consider fixable. By default,
1662
+ * all rules are considered fixable.
1663
+ */
1664
+ fixable?: RuleSelector[] | null;
1665
+ /**
1666
+ * @deprecated
1667
+ * Options for the `flake8-annotations` plugin.
1668
+ */
1669
+ 'flake8-annotations'?: Flake8AnnotationsOptions | null;
1670
+ /**
1671
+ * @deprecated
1672
+ * Options for the `flake8-bandit` plugin.
1673
+ */
1674
+ 'flake8-bandit'?: Flake8BanditOptions | null;
1675
+ /**
1676
+ * @deprecated
1677
+ * Options for the `flake8-boolean-trap` plugin.
1678
+ */
1679
+ 'flake8-boolean-trap'?: Flake8BooleanTrapOptions | null;
1680
+ /**
1681
+ * @deprecated
1682
+ * Options for the `flake8-bugbear` plugin.
1683
+ */
1684
+ 'flake8-bugbear'?: Flake8BugbearOptions | null;
1685
+ /**
1686
+ * @deprecated
1687
+ * Options for the `flake8-builtins` plugin.
1688
+ */
1689
+ 'flake8-builtins'?: Flake8BuiltinsOptions | null;
1690
+ /**
1691
+ * @deprecated
1692
+ * Options for the `flake8-comprehensions` plugin.
1693
+ */
1694
+ 'flake8-comprehensions'?: Flake8ComprehensionsOptions | null;
1695
+ /**
1696
+ * @deprecated
1697
+ * Options for the `flake8-copyright` plugin.
1698
+ */
1699
+ 'flake8-copyright'?: Flake8CopyrightOptions | null;
1700
+ /**
1701
+ * @deprecated
1702
+ * Options for the `flake8-errmsg` plugin.
1703
+ */
1704
+ 'flake8-errmsg'?: Flake8ErrMsgOptions | null;
1705
+ /**
1706
+ * @deprecated
1707
+ * Options for the `flake8-gettext` plugin.
1708
+ */
1709
+ 'flake8-gettext'?: Flake8GetTextOptions | null;
1710
+ /**
1711
+ * @deprecated
1712
+ * Options for the `flake8-implicit-str-concat` plugin.
1713
+ */
1714
+ 'flake8-implicit-str-concat'?: Flake8ImplicitStrConcatOptions | null;
1715
+ /**
1716
+ * @deprecated
1717
+ * Options for the `flake8-import-conventions` plugin.
1718
+ */
1719
+ 'flake8-import-conventions'?: Flake8ImportConventionsOptions | null;
1720
+ /**
1721
+ * @deprecated
1722
+ * Options for the `flake8-pytest-style` plugin.
1723
+ */
1724
+ 'flake8-pytest-style'?: Flake8PytestStyleOptions | null;
1725
+ /**
1726
+ * @deprecated
1727
+ * Options for the `flake8-quotes` plugin.
1728
+ */
1729
+ 'flake8-quotes'?: Flake8QuotesOptions | null;
1730
+ /**
1731
+ * @deprecated
1732
+ * Options for the `flake8_self` plugin.
1733
+ */
1734
+ 'flake8-self'?: Flake8SelfOptions | null;
1735
+ /**
1736
+ * @deprecated
1737
+ * Options for the `flake8-tidy-imports` plugin.
1738
+ */
1739
+ 'flake8-tidy-imports'?: Flake8TidyImportsOptions | null;
1740
+ /**
1741
+ * @deprecated
1742
+ * Options for the `flake8-type-checking` plugin.
1743
+ */
1744
+ 'flake8-type-checking'?: Flake8TypeCheckingOptions | null;
1745
+ /**
1746
+ * @deprecated
1747
+ * Options for the `flake8-unused-arguments` plugin.
1748
+ */
1749
+ 'flake8-unused-arguments'?: Flake8UnusedArgumentsOptions | null;
1750
+ /**
1751
+ * Whether to enforce [`exclude`](#exclude) and [`extend-exclude`](#extend-exclude) patterns,
1752
+ * even for paths that are passed to Ruff explicitly. Typically, Ruff will lint
1753
+ * any paths passed in directly, even if they would typically be
1754
+ * excluded. Setting `force-exclude = true` will cause Ruff to
1755
+ * respect these exclusions unequivocally.
1756
+ *
1757
+ * This is useful for [`pre-commit`](https://pre-commit.com/), which explicitly passes all
1758
+ * changed files to the [`ruff-pre-commit`](https://github.com/astral-sh/ruff-pre-commit)
1759
+ * plugin, regardless of whether they're marked as excluded by Ruff's own
1760
+ * settings.
1761
+ */
1762
+ 'force-exclude'?: boolean | null;
1763
+ /**
1764
+ * Options to configure code formatting.
1765
+ */
1766
+ format?: FormatOptions | null;
1767
+ /**
1768
+ * @deprecated
1769
+ * A list of rule codes or prefixes to ignore. Prefixes can specify exact
1770
+ * rules (like `F841`), entire categories (like `F`), or anything in
1771
+ * between.
1772
+ *
1773
+ * When breaking ties between enabled and disabled rules (via `select` and
1774
+ * `ignore`, respectively), more specific prefixes override less
1775
+ * specific prefixes. `ignore` takes precedence over `select` if the same
1776
+ * prefix appears in both.
1777
+ */
1778
+ ignore?: RuleSelector[] | null;
1779
+ /**
1780
+ * @deprecated
1781
+ * Avoid automatically removing unused imports in `__init__.py` files. Such
1782
+ * imports will still be flagged, but with a dedicated message suggesting
1783
+ * that the import is either added to the module's `__all__` symbol, or
1784
+ * re-exported with a redundant alias (e.g., `import os as os`).
1785
+ *
1786
+ * This option is enabled by default, but you can opt-in to removal of imports
1787
+ * via an unsafe fix.
1788
+ */
1789
+ 'ignore-init-module-imports'?: boolean | null;
1790
+ /**
1791
+ * A list of file patterns to include when linting.
1792
+ *
1793
+ * Inclusion are based on globs, and should be single-path patterns, like
1794
+ * `*.pyw`, to include any file with the `.pyw` extension. `pyproject.toml` is
1795
+ * included here not for configuration but because we lint whether e.g. the
1796
+ * `[project]` matches the schema.
1797
+ *
1798
+ * Notebook files (`.ipynb` extension) are included by default on Ruff 0.6.0+.
1799
+ *
1800
+ * For more information on the glob syntax, refer to the [`globset` documentation](https://docs.rs/globset/latest/globset/#syntax).
1801
+ */
1802
+ include?: string[] | null;
1803
+ /**
1804
+ * The number of spaces per indentation level (tab).
1805
+ *
1806
+ * Used by the formatter and when enforcing long-line violations (like `E501`) to determine the visual
1807
+ * width of a tab.
1808
+ *
1809
+ * This option changes the number of spaces the formatter inserts when
1810
+ * using soft-tabs (`indent-style = space`).
1811
+ *
1812
+ * PEP 8 recommends using 4 spaces per [indentation level](https://peps.python.org/pep-0008/#indentation).
1813
+ */
1814
+ 'indent-width'?: IndentWidth | null;
1815
+ /**
1816
+ * @deprecated
1817
+ * Options for the `isort` plugin.
1818
+ */
1819
+ isort?: IsortOptions | null;
1820
+ /**
1821
+ * The line length to use when enforcing long-lines violations (like `E501`)
1822
+ * and at which `isort` and the formatter prefers to wrap lines.
1823
+ *
1824
+ * The length is determined by the number of characters per line, except for lines containing East Asian characters or emojis.
1825
+ * For these lines, the [unicode width](https://unicode.org/reports/tr11/) of each character is added up to determine the length.
1826
+ *
1827
+ * The value must be greater than `0` and less than or equal to `320`.
1828
+ *
1829
+ * Note: While the formatter will attempt to format lines such that they remain
1830
+ * within the `line-length`, it isn't a hard upper bound, and formatted lines may
1831
+ * exceed the `line-length`.
1832
+ *
1833
+ * See [`pycodestyle.max-line-length`](#lint_pycodestyle_max-line-length) to configure different lengths for `E501` and the formatter.
1834
+ */
1835
+ 'line-length'?: LineLength | null;
1836
+ lint?: LintOptions | null;
1837
+ /**
1838
+ * @deprecated
1839
+ * A list of objects that should be treated equivalently to a
1840
+ * `logging.Logger` object.
1841
+ *
1842
+ * This is useful for ensuring proper diagnostics (e.g., to identify
1843
+ * `logging` deprecations and other best-practices) for projects that
1844
+ * re-export a `logging.Logger` object from a common module.
1845
+ *
1846
+ * For example, if you have a module `logging_setup.py` with the following
1847
+ * contents:
1848
+ * ```python
1849
+ * import logging
1850
+ *
1851
+ * logger = logging.getLogger(__name__)
1852
+ * ```
1853
+ *
1854
+ * Adding `"logging_setup.logger"` to `logger-objects` will ensure that
1855
+ * `logging_setup.logger` is treated as a `logging.Logger` object when
1856
+ * imported from other modules (e.g., `from logging_setup import logger`).
1857
+ */
1858
+ 'logger-objects'?: string[] | null;
1859
+ /**
1860
+ * @deprecated
1861
+ * Options for the `mccabe` plugin.
1862
+ */
1863
+ mccabe?: McCabeOptions | null;
1864
+ /**
1865
+ * Mark the specified directories as namespace packages. For the purpose of
1866
+ * module resolution, Ruff will treat those directories and all their subdirectories
1867
+ * as if they contained an `__init__.py` file.
1868
+ */
1869
+ 'namespace-packages'?: string[] | null;
1870
+ /**
1871
+ * The style in which violation messages should be formatted: `"full"` (default)
1872
+ * (shows source), `"concise"`, `"grouped"` (group messages by file), `"json"`
1873
+ * (machine-readable), `"junit"` (machine-readable XML), `"github"` (GitHub
1874
+ * Actions annotations), `"gitlab"` (GitLab CI code quality report),
1875
+ * `"pylint"` (Pylint text format) or `"azure"` (Azure Pipeline logging commands).
1876
+ */
1877
+ 'output-format'?: OutputFormat | null;
1878
+ /**
1879
+ * @deprecated
1880
+ * Options for the `pep8-naming` plugin.
1881
+ */
1882
+ 'pep8-naming'?: Pep8NamingOptions | null;
1883
+ /**
1884
+ * @deprecated
1885
+ * A list of mappings from file pattern to rule codes or prefixes to
1886
+ * exclude, when considering any matching files. An initial '!' negates
1887
+ * the file pattern.
1888
+ */
1889
+ 'per-file-ignores'?: {
1890
+ [k: string]: RuleSelector[] | undefined;
1891
+ } | null;
1892
+ /**
1893
+ * A list of mappings from glob-style file pattern to Python version to use when checking the
1894
+ * corresponding file(s).
1895
+ *
1896
+ * This may be useful for overriding the global Python version settings in `target-version` or
1897
+ * `requires-python` for a subset of files. For example, if you have a project with a minimum
1898
+ * supported Python version of 3.9 but a subdirectory of developer scripts that want to use a
1899
+ * newer feature like the `match` statement from Python 3.10, you can use
1900
+ * `per-file-target-version` to specify `"developer_scripts/*.py" = "py310"`.
1901
+ *
1902
+ * This setting is used by the linter to enforce any enabled version-specific lint rules, as
1903
+ * well as by the formatter for any version-specific formatting options, such as parenthesizing
1904
+ * context managers on Python 3.10+.
1905
+ */
1906
+ 'per-file-target-version'?: {
1907
+ [k: string]: PythonVersion | undefined;
1908
+ } | null;
1909
+ /**
1910
+ * Whether to enable preview mode. When preview mode is enabled, Ruff will
1911
+ * use unstable rules, fixes, and formatting.
1912
+ */
1913
+ preview?: boolean | null;
1914
+ /**
1915
+ * @deprecated
1916
+ * Options for the `pycodestyle` plugin.
1917
+ */
1918
+ pycodestyle?: PycodestyleOptions | null;
1919
+ /**
1920
+ * @deprecated
1921
+ * Options for the `pydocstyle` plugin.
1922
+ */
1923
+ pydocstyle?: PydocstyleOptions | null;
1924
+ /**
1925
+ * @deprecated
1926
+ * Options for the `pyflakes` plugin.
1927
+ */
1928
+ pyflakes?: PyflakesOptions | null;
1929
+ /**
1930
+ * @deprecated
1931
+ * Options for the `pylint` plugin.
1932
+ */
1933
+ pylint?: PylintOptions | null;
1934
+ /**
1935
+ * @deprecated
1936
+ * Options for the `pyupgrade` plugin.
1937
+ */
1938
+ pyupgrade?: PyUpgradeOptions | null;
1939
+ /**
1940
+ * Enforce a requirement on the version of Ruff, to enforce at runtime.
1941
+ * If the version of Ruff does not meet the requirement, Ruff will exit
1942
+ * with an error.
1943
+ *
1944
+ * Useful for unifying results across many environments, e.g., with a
1945
+ * `pyproject.toml` file.
1946
+ *
1947
+ * Accepts a [PEP 440](https://peps.python.org/pep-0440/) specifier, like `==0.3.1` or `>=0.3.1`.
1948
+ */
1949
+ 'required-version'?: RequiredVersion | null;
1950
+ /**
1951
+ * Whether to automatically exclude files that are ignored by `.ignore`,
1952
+ * `.gitignore`, `.git/info/exclude`, and global `gitignore` files.
1953
+ * Enabled by default.
1954
+ */
1955
+ 'respect-gitignore'?: boolean | null;
1956
+ /**
1957
+ * @deprecated
1958
+ * A list of rule codes or prefixes to enable. Prefixes can specify exact
1959
+ * rules (like `F841`), entire categories (like `F`), or anything in
1960
+ * between.
1961
+ *
1962
+ * When breaking ties between enabled and disabled rules (via `select` and
1963
+ * `ignore`, respectively), more specific prefixes override less
1964
+ * specific prefixes. `ignore` takes precedence over `select` if the
1965
+ * same prefix appears in both.
1966
+ */
1967
+ select?: RuleSelector[] | null;
1968
+ /**
1969
+ * Whether to show an enumeration of all fixed lint violations
1970
+ * (overridden by the `--show-fixes` command-line flag).
1971
+ */
1972
+ 'show-fixes'?: boolean | null;
1973
+ /**
1974
+ * The directories to consider when resolving first- vs. third-party
1975
+ * imports.
1976
+ *
1977
+ * When omitted, the `src` directory will typically default to including both:
1978
+ *
1979
+ * 1. The directory containing the nearest `pyproject.toml`, `ruff.toml`, or `.ruff.toml` file (the "project root").
1980
+ * 2. The `"src"` subdirectory of the project root.
1981
+ *
1982
+ * These defaults ensure that Ruff supports both flat layouts and `src` layouts out-of-the-box.
1983
+ * (If a configuration file is explicitly provided (e.g., via the `--config` command-line
1984
+ * flag), the current working directory will be considered the project root.)
1985
+ *
1986
+ * As an example, consider an alternative project structure, like:
1987
+ *
1988
+ * ```text
1989
+ * my_project
1990
+ * ├── pyproject.toml
1991
+ * └── lib
1992
+ * └── my_package
1993
+ * ├── __init__.py
1994
+ * ├── foo.py
1995
+ * └── bar.py
1996
+ * ```
1997
+ *
1998
+ * In this case, the `./lib` directory should be included in the `src` option
1999
+ * (e.g., `src = ["lib"]`), such that when resolving imports, `my_package.foo`
2000
+ * is considered first-party.
2001
+ *
2002
+ * This field supports globs. For example, if you have a series of Python
2003
+ * packages in a `python_modules` directory, `src = ["python_modules/*"]`
2004
+ * would expand to incorporate all packages in that directory. User home
2005
+ * directory and environment variables will also be expanded.
2006
+ */
2007
+ src?: string[] | null;
2008
+ /**
2009
+ * The minimum Python version to target, e.g., when considering automatic
2010
+ * code upgrades, like rewriting type annotations. Ruff will not propose
2011
+ * changes using features that are not available in the given version.
2012
+ *
2013
+ * For example, to represent supporting Python >=3.11 or ==3.11
2014
+ * specify `target-version = "py311"`.
2015
+ *
2016
+ * If you're already using a `pyproject.toml` file, we recommend
2017
+ * `project.requires-python` instead, as it's based on Python packaging
2018
+ * standards, and will be respected by other tools. For example, Ruff
2019
+ * treats the following as identical to `target-version = "py38"`:
2020
+ *
2021
+ * ```toml
2022
+ * [project]
2023
+ * requires-python = ">=3.8"
2024
+ * ```
2025
+ *
2026
+ * If both are specified, `target-version` takes precedence over
2027
+ * `requires-python`. See [_Inferring the Python version_](https://docs.astral.sh/ruff/configuration/#inferring-the-python-version)
2028
+ * for a complete description of how the `target-version` is determined
2029
+ * when left unspecified.
2030
+ *
2031
+ * Note that a stub file can [sometimes make use of a typing feature](https://typing.python.org/en/latest/spec/distributing.html#syntax)
2032
+ * before it is available at runtime, as long as the stub does not make
2033
+ * use of new *syntax*. For example, a type checker will understand
2034
+ * `int | str` in a stub as being a `Union` type annotation, even if the
2035
+ * type checker is run using Python 3.9, despite the fact that the `|`
2036
+ * operator can only be used to create union types at runtime on Python
2037
+ * 3.10+. As such, Ruff will often recommend newer features in a stub
2038
+ * file than it would for an equivalent runtime file with the same target
2039
+ * version.
2040
+ */
2041
+ 'target-version'?: PythonVersion | undefined | null;
2042
+ /**
2043
+ * @deprecated
2044
+ * A list of task tags to recognize (e.g., "TODO", "FIXME", "XXX").
2045
+ *
2046
+ * Comments starting with these tags will be ignored by commented-out code
2047
+ * detection (`ERA`), and skipped by line-length rules (`E501`) if
2048
+ * [`ignore-overlong-task-comments`](#lint_pycodestyle_ignore-overlong-task-comments) is set to `true`.
2049
+ */
2050
+ 'task-tags'?: string[] | null;
2051
+ /**
2052
+ * @deprecated
2053
+ * A list of modules whose exports should be treated equivalently to
2054
+ * members of the `typing` module.
2055
+ *
2056
+ * This is useful for ensuring proper type annotation inference for
2057
+ * projects that re-export `typing` and `typing_extensions` members
2058
+ * from a compatibility module. If omitted, any members imported from
2059
+ * modules apart from `typing` and `typing_extensions` will be treated
2060
+ * as ordinary Python objects.
2061
+ */
2062
+ 'typing-modules'?: string[] | null;
2063
+ /**
2064
+ * @deprecated
2065
+ * A list of rule codes or prefixes to consider non-fixable.
2066
+ */
2067
+ unfixable?: RuleSelector[] | null;
2068
+ /**
2069
+ * Enable application of unsafe fixes.
2070
+ * If excluded, a hint will be displayed when unsafe fixes are available.
2071
+ * If set to false, the hint will be hidden.
2072
+ */
2073
+ 'unsafe-fixes'?: boolean | null;
2074
+ }
2075
+ /**
2076
+ * Configures Ruff's `analyze` command.
2077
+ */
2078
+ export interface AnalyzeOptions {
2079
+ /**
2080
+ * Whether to detect imports from string literals. When enabled, Ruff will search for string
2081
+ * literals that "look like" import paths, and include them in the import map, if they resolve
2082
+ * to valid Python modules.
2083
+ */
2084
+ 'detect-string-imports'?: boolean | null;
2085
+ /**
2086
+ * Whether to generate a map from file to files that it depends on (dependencies) or files that
2087
+ * depend on it (dependents).
2088
+ */
2089
+ direction?: Direction | null;
2090
+ /**
2091
+ * A list of file patterns to exclude from analysis in addition to the files excluded globally (see [`exclude`](#exclude), and [`extend-exclude`](#extend-exclude)).
2092
+ *
2093
+ * Exclusions are based on globs, and can be either:
2094
+ *
2095
+ * - Single-path patterns, like `.mypy_cache` (to exclude any directory
2096
+ * named `.mypy_cache` in the tree), `foo.py` (to exclude any file named
2097
+ * `foo.py`), or `foo_*.py` (to exclude any file matching `foo_*.py` ).
2098
+ * - Relative patterns, like `directory/foo.py` (to exclude that specific
2099
+ * file) or `directory/*.py` (to exclude any Python files in
2100
+ * `directory`). Note that these paths are relative to the project root
2101
+ * (e.g., the directory containing your `pyproject.toml`).
2102
+ *
2103
+ * For more information on the glob syntax, refer to the [`globset` documentation](https://docs.rs/globset/latest/globset/#syntax).
2104
+ */
2105
+ exclude?: string[] | null;
2106
+ /**
2107
+ * A map from file path to the list of Python or non-Python file paths or globs that should be
2108
+ * considered dependencies of that file, regardless of whether relevant imports are detected.
2109
+ */
2110
+ 'include-dependencies'?: {
2111
+ [k: string]: string[] | undefined;
2112
+ } | null;
2113
+ /**
2114
+ * Whether to enable preview mode. When preview mode is enabled, Ruff will expose unstable
2115
+ * commands.
2116
+ */
2117
+ preview?: boolean | null;
2118
+ /**
2119
+ * The minimum number of dots in a string to consider it a valid import.
2120
+ *
2121
+ * This setting is only relevant when [`detect-string-imports`](#detect-string-imports) is enabled.
2122
+ * For example, if this is set to `2`, then only strings with at least two dots (e.g., `"path.to.module"`)
2123
+ * would be considered valid imports.
2124
+ */
2125
+ 'string-imports-min-dots'?: number | null;
2126
+ /**
2127
+ * Whether to include imports that are only used for type checking (i.e., imports within `if TYPE_CHECKING:` blocks).
2128
+ * When enabled (default), type-checking-only imports are included in the import graph.
2129
+ * When disabled, they are excluded.
2130
+ */
2131
+ 'type-checking-imports'?: boolean | null;
2132
+ }
2133
+ /**
2134
+ * Options for the `flake8-annotations` plugin.
2135
+ */
2136
+ export interface Flake8AnnotationsOptions {
2137
+ /**
2138
+ * Whether to suppress `ANN401` for dynamically typed `*args` and
2139
+ * `**kwargs` arguments.
2140
+ */
2141
+ 'allow-star-arg-any'?: boolean | null;
2142
+ /**
2143
+ * Whether to suppress `ANN*` rules for any declaration
2144
+ * that hasn't been typed at all.
2145
+ * This makes it easier to gradually add types to a codebase.
2146
+ */
2147
+ 'ignore-fully-untyped'?: boolean | null;
2148
+ /**
2149
+ * Whether to allow the omission of a return type hint for `__init__` if at
2150
+ * least one argument is annotated.
2151
+ */
2152
+ 'mypy-init-return'?: boolean | null;
2153
+ /**
2154
+ * Whether to suppress `ANN000`-level violations for arguments matching the
2155
+ * "dummy" variable regex (like `_`).
2156
+ */
2157
+ 'suppress-dummy-args'?: boolean | null;
2158
+ /**
2159
+ * Whether to suppress `ANN200`-level violations for functions that meet
2160
+ * either of the following criteria:
2161
+ *
2162
+ * - Contain no `return` statement.
2163
+ * - Explicit `return` statement(s) all return `None` (explicitly or
2164
+ * implicitly).
2165
+ */
2166
+ 'suppress-none-returning'?: boolean | null;
2167
+ }
2168
+ /**
2169
+ * Options for the `flake8-bandit` plugin.
2170
+ */
2171
+ export interface Flake8BanditOptions {
2172
+ /**
2173
+ * A list of callable names, whose result may be safely passed into
2174
+ * [`markupsafe.Markup`](https://markupsafe.palletsprojects.com/en/stable/escaping/#markupsafe.Markup).
2175
+ *
2176
+ * Expects to receive a list of fully-qualified names (e.g., `bleach.clean`, rather than `clean`).
2177
+ *
2178
+ * This setting helps you avoid false positives in code like:
2179
+ *
2180
+ * ```python
2181
+ * from bleach import clean
2182
+ * from markupsafe import Markup
2183
+ *
2184
+ * cleaned_markup = Markup(clean(some_user_input))
2185
+ * ```
2186
+ *
2187
+ * Where the use of [`bleach.clean`](https://bleach.readthedocs.io/en/latest/clean.html)
2188
+ * usually ensures that there's no XSS vulnerability.
2189
+ *
2190
+ * Although it is not recommended, you may also use this setting to whitelist other
2191
+ * kinds of calls, e.g. calls to i18n translation functions, where how safe that is
2192
+ * will depend on the implementation and how well the translations are audited.
2193
+ *
2194
+ * Another common use-case is to wrap the output of functions that generate markup
2195
+ * like [`xml.etree.ElementTree.tostring`](https://docs.python.org/3/library/xml.etree.elementtree.html#xml.etree.ElementTree.tostring)
2196
+ * or template rendering engines where sanitization of potential user input is either
2197
+ * already baked in or has to happen before rendering.
2198
+ */
2199
+ 'allowed-markup-calls'?: string[] | null;
2200
+ /**
2201
+ * Whether to disallow `try`-`except`-`pass` (`S110`) for specific
2202
+ * exception types. By default, `try`-`except`-`pass` is only
2203
+ * disallowed for `Exception` and `BaseException`.
2204
+ */
2205
+ 'check-typed-exception'?: boolean | null;
2206
+ /**
2207
+ * A list of additional callable names that behave like
2208
+ * [`markupsafe.Markup`](https://markupsafe.palletsprojects.com/en/stable/escaping/#markupsafe.Markup).
2209
+ *
2210
+ * Expects to receive a list of fully-qualified names (e.g., `webhelpers.html.literal`, rather than
2211
+ * `literal`).
2212
+ */
2213
+ 'extend-markup-names'?: string[] | null;
2214
+ /**
2215
+ * A list of directories to consider temporary (see `S108`).
2216
+ */
2217
+ 'hardcoded-tmp-directory'?: string[] | null;
2218
+ /**
2219
+ * A list of directories to consider temporary, in addition to those
2220
+ * specified by [`hardcoded-tmp-directory`](#lint_flake8-bandit_hardcoded-tmp-directory) (see `S108`).
2221
+ */
2222
+ 'hardcoded-tmp-directory-extend'?: string[] | null;
2223
+ }
2224
+ /**
2225
+ * Options for the `flake8-boolean-trap` plugin
2226
+ */
2227
+ export interface Flake8BooleanTrapOptions {
2228
+ /**
2229
+ * Additional callable functions with which to allow boolean traps.
2230
+ *
2231
+ * Expects to receive a list of fully-qualified names (e.g., `pydantic.Field`, rather than
2232
+ * `Field`).
2233
+ */
2234
+ 'extend-allowed-calls'?: string[] | null;
2235
+ }
2236
+ /**
2237
+ * Options for the `flake8-bugbear` plugin.
2238
+ */
2239
+ export interface Flake8BugbearOptions {
2240
+ /**
2241
+ * Additional callable functions to consider "immutable" when evaluating, e.g., the
2242
+ * `function-call-in-default-argument` rule (`B008`) or `function-call-in-dataclass-defaults`
2243
+ * rule (`RUF009`).
2244
+ *
2245
+ * Expects to receive a list of fully-qualified names (e.g., `fastapi.Query`, rather than
2246
+ * `Query`).
2247
+ */
2248
+ 'extend-immutable-calls'?: string[] | null;
2249
+ }
2250
+ /**
2251
+ * Options for the `flake8-builtins` plugin.
2252
+ */
2253
+ export interface Flake8BuiltinsOptions {
2254
+ /**
2255
+ * List of builtin module names to allow.
2256
+ */
2257
+ 'allowed-modules'?: string[] | null;
2258
+ /**
2259
+ * @deprecated
2260
+ * DEPRECATED: This option has been renamed to `allowed-modules`. Use `allowed-modules` instead.
2261
+ *
2262
+ * List of builtin module names to allow.
2263
+ *
2264
+ * This option is ignored if both `allowed-modules` and `builtins-allowed-modules` are set.
2265
+ */
2266
+ 'builtins-allowed-modules'?: string[] | null;
2267
+ /**
2268
+ * @deprecated
2269
+ * DEPRECATED: This option has been renamed to `ignorelist`. Use `ignorelist` instead.
2270
+ *
2271
+ * Ignore list of builtins.
2272
+ *
2273
+ * This option is ignored if both `ignorelist` and `builtins-ignorelist` are set.
2274
+ */
2275
+ 'builtins-ignorelist'?: string[] | null;
2276
+ /**
2277
+ * @deprecated
2278
+ * DEPRECATED: This option has been renamed to `strict-checking`. Use `strict-checking` instead.
2279
+ *
2280
+ * Compare module names instead of full module paths.
2281
+ *
2282
+ * This option is ignored if both `strict-checking` and `builtins-strict-checking` are set.
2283
+ */
2284
+ 'builtins-strict-checking'?: boolean | null;
2285
+ /**
2286
+ * Ignore list of builtins.
2287
+ */
2288
+ ignorelist?: string[] | null;
2289
+ /**
2290
+ * Compare module names instead of full module paths.
2291
+ *
2292
+ * Used by [`A005` - `stdlib-module-shadowing`](https://docs.astral.sh/ruff/rules/stdlib-module-shadowing/).
2293
+ */
2294
+ 'strict-checking'?: boolean | null;
2295
+ }
2296
+ /**
2297
+ * Options for the `flake8-comprehensions` plugin.
2298
+ */
2299
+ export interface Flake8ComprehensionsOptions {
2300
+ /**
2301
+ * Allow `dict` calls that make use of keyword arguments (e.g., `dict(a=1, b=2)`).
2302
+ */
2303
+ 'allow-dict-calls-with-keyword-arguments'?: boolean | null;
2304
+ }
2305
+ /**
2306
+ * Options for the `flake8-copyright` plugin.
2307
+ */
2308
+ export interface Flake8CopyrightOptions {
2309
+ /**
2310
+ * Author to enforce within the copyright notice. If provided, the
2311
+ * author must be present immediately following the copyright notice.
2312
+ */
2313
+ author?: string | null;
2314
+ /**
2315
+ * A minimum file size (in bytes) required for a copyright notice to
2316
+ * be enforced. By default, all files are validated.
2317
+ */
2318
+ 'min-file-size'?: number | null;
2319
+ /**
2320
+ * The regular expression used to match the copyright notice, compiled
2321
+ * with the [`regex`](https://docs.rs/regex/latest/regex/) crate.
2322
+ * Defaults to `(?i)Copyright\s+((?:\(C\)|©)\s+)?\d{4}((-|,\s)\d{4})*`, which matches
2323
+ * the following:
2324
+ *
2325
+ * - `Copyright 2023`
2326
+ * - `Copyright (C) 2023`
2327
+ * - `Copyright 2021-2023`
2328
+ * - `Copyright (C) 2021-2023`
2329
+ * - `Copyright (C) 2021, 2023`
2330
+ */
2331
+ 'notice-rgx'?: string | null;
2332
+ }
2333
+ /**
2334
+ * Options for the `flake8-errmsg` plugin.
2335
+ */
2336
+ export interface Flake8ErrMsgOptions {
2337
+ /**
2338
+ * Maximum string length for string literals in exception messages.
2339
+ */
2340
+ 'max-string-length'?: number | null;
2341
+ }
2342
+ /**
2343
+ * Options for the `flake8-gettext` plugin.
2344
+ */
2345
+ export interface Flake8GetTextOptions {
2346
+ /**
2347
+ * Additional function names to consider as internationalization calls, in addition to those
2348
+ * included in [`function-names`](#lint_flake8-gettext_function-names).
2349
+ */
2350
+ 'extend-function-names'?: string[] | null;
2351
+ /**
2352
+ * The function names to consider as internationalization calls.
2353
+ */
2354
+ 'function-names'?: string[] | null;
2355
+ }
2356
+ /**
2357
+ * Options for the `flake8-implicit-str-concat` plugin
2358
+ */
2359
+ export interface Flake8ImplicitStrConcatOptions {
2360
+ /**
2361
+ * Whether to allow implicit string concatenations for multiline strings.
2362
+ * By default, implicit concatenations of multiline strings are
2363
+ * allowed (but continuation lines, delimited with a backslash, are
2364
+ * prohibited).
2365
+ *
2366
+ * Setting `allow-multiline = false` will automatically disable the
2367
+ * `explicit-string-concatenation` (`ISC003`) rule. Otherwise, both
2368
+ * implicit and explicit multiline string concatenations would be seen
2369
+ * as violations, making it impossible to write a linter-compliant multiline
2370
+ * string.
2371
+ */
2372
+ 'allow-multiline'?: boolean | null;
2373
+ }
2374
+ /**
2375
+ * Options for the `flake8-import-conventions` plugin
2376
+ */
2377
+ export interface Flake8ImportConventionsOptions {
2378
+ /**
2379
+ * The conventional aliases for imports. These aliases can be extended by
2380
+ * the [`extend-aliases`](#lint_flake8-import-conventions_extend-aliases) option.
2381
+ */
2382
+ aliases?: {
2383
+ [k: string]: Alias | undefined;
2384
+ } | null;
2385
+ /**
2386
+ * A mapping from module to its banned import aliases.
2387
+ */
2388
+ 'banned-aliases'?: {
2389
+ [k: string]: BannedAliases | undefined;
2390
+ } | null;
2391
+ /**
2392
+ * A list of modules that should not be imported from using the
2393
+ * `from ... import ...` syntax.
2394
+ *
2395
+ * For example, given `banned-from = ["pandas"]`, `from pandas import DataFrame`
2396
+ * would be disallowed, while `import pandas` would be allowed.
2397
+ */
2398
+ 'banned-from'?: string[] | null;
2399
+ /**
2400
+ * A mapping from module to conventional import alias. These aliases will
2401
+ * be added to the [`aliases`](#lint_flake8-import-conventions_aliases) mapping.
2402
+ */
2403
+ 'extend-aliases'?: {
2404
+ [k: string]: Alias | undefined;
2405
+ } | null;
2406
+ }
2407
+ /**
2408
+ * Options for the `flake8-pytest-style` plugin
2409
+ */
2410
+ export interface Flake8PytestStyleOptions {
2411
+ /**
2412
+ * Boolean flag specifying whether `@pytest.fixture()` without parameters
2413
+ * should have parentheses. If the option is set to `false` (the default),
2414
+ * `@pytest.fixture` is valid and `@pytest.fixture()` is invalid. If set
2415
+ * to `true`, `@pytest.fixture()` is valid and `@pytest.fixture` is
2416
+ * invalid.
2417
+ */
2418
+ 'fixture-parentheses'?: boolean | null;
2419
+ /**
2420
+ * Boolean flag specifying whether `@pytest.mark.foo()` without parameters
2421
+ * should have parentheses. If the option is set to `false` (the
2422
+ * default), `@pytest.mark.foo` is valid and `@pytest.mark.foo()` is
2423
+ * invalid. If set to `true`, `@pytest.mark.foo()` is valid and
2424
+ * `@pytest.mark.foo` is invalid.
2425
+ */
2426
+ 'mark-parentheses'?: boolean | null;
2427
+ /**
2428
+ * Expected type for multiple argument names in `@pytest.mark.parametrize`.
2429
+ * The following values are supported:
2430
+ *
2431
+ * - `csv` — a comma-separated list, e.g.
2432
+ * `@pytest.mark.parametrize("name1,name2", ...)`
2433
+ * - `tuple` (default) — e.g.
2434
+ * `@pytest.mark.parametrize(("name1", "name2"), ...)`
2435
+ * - `list` — e.g. `@pytest.mark.parametrize(["name1", "name2"], ...)`
2436
+ */
2437
+ 'parametrize-names-type'?: ParametrizeNameType | null;
2438
+ /**
2439
+ * Expected type for each row of values in `@pytest.mark.parametrize` in
2440
+ * case of multiple parameters. The following values are supported:
2441
+ *
2442
+ * - `tuple` (default) — e.g.
2443
+ * `@pytest.mark.parametrize(("name1", "name2"), [(1, 2), (3, 4)])`
2444
+ * - `list` — e.g.
2445
+ * `@pytest.mark.parametrize(("name1", "name2"), [[1, 2], [3, 4]])`
2446
+ */
2447
+ 'parametrize-values-row-type'?: ParametrizeValuesRowType | null;
2448
+ /**
2449
+ * Expected type for the list of values rows in `@pytest.mark.parametrize`.
2450
+ * The following values are supported:
2451
+ *
2452
+ * - `tuple` — e.g. `@pytest.mark.parametrize("name", (1, 2, 3))`
2453
+ * - `list` (default) — e.g. `@pytest.mark.parametrize("name", [1, 2, 3])`
2454
+ */
2455
+ 'parametrize-values-type'?: ParametrizeValuesType | null;
2456
+ /**
2457
+ * List of additional exception names that require a match= parameter in a
2458
+ * `pytest.raises()` call. This extends the default list of exceptions
2459
+ * that require a match= parameter.
2460
+ * This option is useful if you want to extend the default list of
2461
+ * exceptions that require a match= parameter without having to specify
2462
+ * the entire list.
2463
+ * Note that this option does not remove any exceptions from the default
2464
+ * list.
2465
+ *
2466
+ * Supports glob patterns. For more information on the glob syntax, refer
2467
+ * to the [`globset` documentation](https://docs.rs/globset/latest/globset/#syntax).
2468
+ */
2469
+ 'raises-extend-require-match-for'?: string[] | null;
2470
+ /**
2471
+ * List of exception names that require a match= parameter in a
2472
+ * `pytest.raises()` call.
2473
+ *
2474
+ * Supports glob patterns. For more information on the glob syntax, refer
2475
+ * to the [`globset` documentation](https://docs.rs/globset/latest/globset/#syntax).
2476
+ */
2477
+ 'raises-require-match-for'?: string[] | null;
2478
+ /**
2479
+ * List of additional warning names that require a match= parameter in a
2480
+ * `pytest.warns()` call. This extends the default list of warnings that
2481
+ * require a match= parameter.
2482
+ *
2483
+ * This option is useful if you want to extend the default list of warnings
2484
+ * that require a match= parameter without having to specify the entire
2485
+ * list.
2486
+ *
2487
+ * Note that this option does not remove any warnings from the default
2488
+ * list.
2489
+ *
2490
+ * Supports glob patterns. For more information on the glob syntax, refer
2491
+ * to the [`globset` documentation](https://docs.rs/globset/latest/globset/#syntax).
2492
+ */
2493
+ 'warns-extend-require-match-for'?: string[] | null;
2494
+ /**
2495
+ * List of warning names that require a match= parameter in a
2496
+ * `pytest.warns()` call.
2497
+ *
2498
+ * Supports glob patterns. For more information on the glob syntax, refer
2499
+ * to the [`globset` documentation](https://docs.rs/globset/latest/globset/#syntax).
2500
+ */
2501
+ 'warns-require-match-for'?: string[] | null;
2502
+ }
2503
+ /**
2504
+ * Options for the `flake8-quotes` plugin.
2505
+ */
2506
+ export interface Flake8QuotesOptions {
2507
+ /**
2508
+ * Whether to avoid using single quotes if a string contains single quotes,
2509
+ * or vice-versa with double quotes, as per [PEP 8](https://peps.python.org/pep-0008/#string-quotes).
2510
+ * This minimizes the need to escape quotation marks within strings.
2511
+ */
2512
+ 'avoid-escape'?: boolean | null;
2513
+ /**
2514
+ * Quote style to prefer for docstrings (either "single" or "double").
2515
+ *
2516
+ * When using the formatter, only "double" is compatible, as the formatter
2517
+ * enforces double quotes for docstrings strings.
2518
+ */
2519
+ 'docstring-quotes'?: Quote | null;
2520
+ /**
2521
+ * Quote style to prefer for inline strings (either "single" or
2522
+ * "double").
2523
+ *
2524
+ * When using the formatter, ensure that [`format.quote-style`](#format_quote-style) is set to
2525
+ * the same preferred quote style.
2526
+ */
2527
+ 'inline-quotes'?: Quote | null;
2528
+ /**
2529
+ * Quote style to prefer for multiline strings (either "single" or
2530
+ * "double").
2531
+ *
2532
+ * When using the formatter, only "double" is compatible, as the formatter
2533
+ * enforces double quotes for multiline strings.
2534
+ */
2535
+ 'multiline-quotes'?: Quote | null;
2536
+ }
2537
+ /**
2538
+ * Options for the `flake8_self` plugin.
2539
+ */
2540
+ export interface Flake8SelfOptions {
2541
+ /**
2542
+ * Additional names to ignore when considering `flake8-self` violations,
2543
+ * in addition to those included in [`ignore-names`](#lint_flake8-self_ignore-names).
2544
+ */
2545
+ 'extend-ignore-names'?: string[] | null;
2546
+ /**
2547
+ * A list of names to ignore when considering `flake8-self` violations.
2548
+ */
2549
+ 'ignore-names'?: string[] | null;
2550
+ }
2551
+ /**
2552
+ * Options for the `flake8-tidy-imports` plugin
2553
+ */
2554
+ export interface Flake8TidyImportsOptions {
2555
+ /**
2556
+ * Whether to ban all relative imports (`"all"`), or only those imports
2557
+ * that extend into the parent module or beyond (`"parents"`).
2558
+ */
2559
+ 'ban-relative-imports'?: Strictness | null;
2560
+ /**
2561
+ * Specific modules or module members that may not be imported or accessed.
2562
+ * Note that this rule is only meant to flag accidental uses,
2563
+ * and can be circumvented via `eval` or `importlib`.
2564
+ */
2565
+ 'banned-api'?: {
2566
+ [k: string]: ApiBan | undefined;
2567
+ } | null;
2568
+ /**
2569
+ * List of specific modules that may not be imported at module level, and should instead be
2570
+ * imported lazily (e.g., within a function definition, or an `if TYPE_CHECKING:`
2571
+ * block, or some other nested context). This also affects the rule `import-outside-top-level`
2572
+ * if `banned-module-level-imports` is enabled.
2573
+ */
2574
+ 'banned-module-level-imports'?: string[] | null;
2575
+ }
2576
+ export interface ApiBan {
2577
+ /**
2578
+ * The message to display when the API is used.
2579
+ */
2580
+ msg: string;
2581
+ }
2582
+ /**
2583
+ * Options for the `flake8-type-checking` plugin
2584
+ */
2585
+ export interface Flake8TypeCheckingOptions {
2586
+ /**
2587
+ * Exempt certain modules from needing to be moved into type-checking
2588
+ * blocks.
2589
+ */
2590
+ 'exempt-modules'?: string[] | null;
2591
+ /**
2592
+ * Whether to add quotes around type annotations, if doing so would allow
2593
+ * the corresponding import to be moved into a type-checking block.
2594
+ *
2595
+ * For example, in the following, Python requires that `Sequence` be
2596
+ * available at runtime, despite the fact that it's only used in a type
2597
+ * annotation:
2598
+ *
2599
+ * ```python
2600
+ * from collections.abc import Sequence
2601
+ *
2602
+ *
2603
+ * def func(value: Sequence[int]) -> None:
2604
+ * ...
2605
+ * ```
2606
+ *
2607
+ * In other words, moving `from collections.abc import Sequence` into an
2608
+ * `if TYPE_CHECKING:` block above would cause a runtime error, as the
2609
+ * type would no longer be available at runtime.
2610
+ *
2611
+ * By default, Ruff will respect such runtime semantics and avoid moving
2612
+ * the import to prevent such runtime errors.
2613
+ *
2614
+ * Setting `quote-annotations` to `true` will instruct Ruff to add quotes
2615
+ * around the annotation (e.g., `"Sequence[int]"`), which in turn enables
2616
+ * Ruff to move the import into an `if TYPE_CHECKING:` block, like so:
2617
+ *
2618
+ * ```python
2619
+ * from typing import TYPE_CHECKING
2620
+ *
2621
+ * if TYPE_CHECKING:
2622
+ * from collections.abc import Sequence
2623
+ *
2624
+ *
2625
+ * def func(value: "Sequence[int]") -> None:
2626
+ * ...
2627
+ * ```
2628
+ *
2629
+ * Note that this setting has no effect when `from __future__ import annotations`
2630
+ * is present, as `__future__` annotations are always treated equivalently
2631
+ * to quoted annotations. Similarly, this setting has no effect on Python
2632
+ * versions after 3.14 because these annotations are also deferred.
2633
+ */
2634
+ 'quote-annotations'?: boolean | null;
2635
+ /**
2636
+ * Exempt classes that list any of the enumerated classes as a base class
2637
+ * from needing to be moved into type-checking blocks.
2638
+ *
2639
+ * Common examples include Pydantic's `pydantic.BaseModel` and SQLAlchemy's
2640
+ * `sqlalchemy.orm.DeclarativeBase`, but can also support user-defined
2641
+ * classes that inherit from those base classes. For example, if you define
2642
+ * a common `DeclarativeBase` subclass that's used throughout your project
2643
+ * (e.g., `class Base(DeclarativeBase) ...` in `base.py`), you can add it to
2644
+ * this list (`runtime-evaluated-base-classes = ["base.Base"]`) to exempt
2645
+ * models from being moved into type-checking blocks.
2646
+ */
2647
+ 'runtime-evaluated-base-classes'?: string[] | null;
2648
+ /**
2649
+ * Exempt classes and functions decorated with any of the enumerated
2650
+ * decorators from being moved into type-checking blocks.
2651
+ *
2652
+ * Common examples include Pydantic's `@pydantic.validate_call` decorator
2653
+ * (for functions) and attrs' `@attrs.define` decorator (for classes).
2654
+ *
2655
+ * This also supports framework decorators like FastAPI's `fastapi.FastAPI.get`
2656
+ * which will work across assignments in the same module.
2657
+ *
2658
+ * For example:
2659
+ * ```python
2660
+ * from fastapi import FastAPI
2661
+ *
2662
+ * app = FastAPI("app")
2663
+ *
2664
+ * @app.get("/home")
2665
+ * def home() -> str: ...
2666
+ * ```
2667
+ *
2668
+ * Here `app.get` will correctly be identified as `fastapi.FastAPI.get`.
2669
+ */
2670
+ 'runtime-evaluated-decorators'?: string[] | null;
2671
+ /**
2672
+ * Enforce `TC001`, `TC002`, and `TC003` rules even when valid runtime imports
2673
+ * are present for the same module.
2674
+ *
2675
+ * See flake8-type-checking's [strict](https://github.com/snok/flake8-type-checking#strict) option.
2676
+ */
2677
+ strict?: boolean | null;
2678
+ }
2679
+ /**
2680
+ * Options for the `flake8-unused-arguments` plugin
2681
+ */
2682
+ export interface Flake8UnusedArgumentsOptions {
2683
+ /**
2684
+ * Whether to allow unused variadic arguments, like `*args` and `**kwargs`.
2685
+ */
2686
+ 'ignore-variadic-names'?: boolean | null;
2687
+ }
2688
+ /**
2689
+ * Configures the way Ruff formats your code.
2690
+ */
2691
+ export interface FormatOptions {
2692
+ /**
2693
+ * Whether to format code snippets in docstrings.
2694
+ *
2695
+ * When this is enabled, Python code examples within docstrings are
2696
+ * automatically reformatted.
2697
+ *
2698
+ * For example, when this is enabled, the following code:
2699
+ *
2700
+ * ```python
2701
+ * def f(x):
2702
+ * """
2703
+ * Something about `f`. And an example in doctest format:
2704
+ *
2705
+ * >>> f( x )
2706
+ *
2707
+ * Markdown is also supported:
2708
+ *
2709
+ * ```py
2710
+ * f( x )
2711
+ * ```
2712
+ *
2713
+ * As are reStructuredText literal blocks::
2714
+ *
2715
+ * f( x )
2716
+ *
2717
+ *
2718
+ * And reStructuredText code blocks:
2719
+ *
2720
+ * .. code-block:: python
2721
+ *
2722
+ * f( x )
2723
+ * """
2724
+ * pass
2725
+ * ```
2726
+ *
2727
+ * ... will be reformatted (assuming the rest of the options are set to
2728
+ * their defaults) as:
2729
+ *
2730
+ * ```python
2731
+ * def f(x):
2732
+ * """
2733
+ * Something about `f`. And an example in doctest format:
2734
+ *
2735
+ * >>> f(x)
2736
+ *
2737
+ * Markdown is also supported:
2738
+ *
2739
+ * ```py
2740
+ * f(x)
2741
+ * ```
2742
+ *
2743
+ * As are reStructuredText literal blocks::
2744
+ *
2745
+ * f(x)
2746
+ *
2747
+ *
2748
+ * And reStructuredText code blocks:
2749
+ *
2750
+ * .. code-block:: python
2751
+ *
2752
+ * f(x)
2753
+ * """
2754
+ * pass
2755
+ * ```
2756
+ *
2757
+ * If a code snippet in a docstring contains invalid Python code or if the
2758
+ * formatter would otherwise write invalid Python code, then the code
2759
+ * example is ignored by the formatter and kept as-is.
2760
+ *
2761
+ * Currently, doctest, Markdown, reStructuredText literal blocks, and
2762
+ * reStructuredText code blocks are all supported and automatically
2763
+ * recognized. In the case of unlabeled fenced code blocks in Markdown and
2764
+ * reStructuredText literal blocks, the contents are assumed to be Python
2765
+ * and reformatted. As with any other format, if the contents aren't valid
2766
+ * Python, then the block is left untouched automatically.
2767
+ */
2768
+ 'docstring-code-format'?: boolean | null;
2769
+ /**
2770
+ * Set the line length used when formatting code snippets in docstrings.
2771
+ *
2772
+ * This only has an effect when the `docstring-code-format` setting is
2773
+ * enabled.
2774
+ *
2775
+ * The default value for this setting is `"dynamic"`, which has the effect
2776
+ * of ensuring that any reformatted code examples in docstrings adhere to
2777
+ * the global line length configuration that is used for the surrounding
2778
+ * Python code. The point of this setting is that it takes the indentation
2779
+ * of the docstring into account when reformatting code examples.
2780
+ *
2781
+ * Alternatively, this can be set to a fixed integer, which will result
2782
+ * in the same line length limit being applied to all reformatted code
2783
+ * examples in docstrings. When set to a fixed integer, the indent of the
2784
+ * docstring is not taken into account. That is, this may result in lines
2785
+ * in the reformatted code example that exceed the globally configured
2786
+ * line length limit.
2787
+ *
2788
+ * For example, when this is set to `20` and [`docstring-code-format`](#docstring-code-format)
2789
+ * is enabled, then this code:
2790
+ *
2791
+ * ```python
2792
+ * def f(x):
2793
+ * '''
2794
+ * Something about `f`. And an example:
2795
+ *
2796
+ * .. code-block:: python
2797
+ *
2798
+ * foo, bar, quux = this_is_a_long_line(lion, hippo, lemur, bear)
2799
+ * '''
2800
+ * pass
2801
+ * ```
2802
+ *
2803
+ * ... will be reformatted (assuming the rest of the options are set
2804
+ * to their defaults) as:
2805
+ *
2806
+ * ```python
2807
+ * def f(x):
2808
+ * """
2809
+ * Something about `f`. And an example:
2810
+ *
2811
+ * .. code-block:: python
2812
+ *
2813
+ * (
2814
+ * foo,
2815
+ * bar,
2816
+ * quux,
2817
+ * ) = this_is_a_long_line(
2818
+ * lion,
2819
+ * hippo,
2820
+ * lemur,
2821
+ * bear,
2822
+ * )
2823
+ * """
2824
+ * pass
2825
+ * ```
2826
+ */
2827
+ 'docstring-code-line-length'?: DocstringCodeLineWidth | null;
2828
+ /**
2829
+ * A list of file patterns to exclude from formatting in addition to the files excluded globally (see [`exclude`](#exclude), and [`extend-exclude`](#extend-exclude)).
2830
+ *
2831
+ * Exclusions are based on globs, and can be either:
2832
+ *
2833
+ * - Single-path patterns, like `.mypy_cache` (to exclude any directory
2834
+ * named `.mypy_cache` in the tree), `foo.py` (to exclude any file named
2835
+ * `foo.py`), or `foo_*.py` (to exclude any file matching `foo_*.py` ).
2836
+ * - Relative patterns, like `directory/foo.py` (to exclude that specific
2837
+ * file) or `directory/*.py` (to exclude any Python files in
2838
+ * `directory`). Note that these paths are relative to the project root
2839
+ * (e.g., the directory containing your `pyproject.toml`).
2840
+ *
2841
+ * For more information on the glob syntax, refer to the [`globset` documentation](https://docs.rs/globset/latest/globset/#syntax).
2842
+ */
2843
+ exclude?: string[] | null;
2844
+ /**
2845
+ * Whether to use spaces or tabs for indentation.
2846
+ *
2847
+ * `indent-style = "space"` (default):
2848
+ *
2849
+ * ```python
2850
+ * def f():
2851
+ * print("Hello") # Spaces indent the `print` statement.
2852
+ * ```
2853
+ *
2854
+ * `indent-style = "tab"`:
2855
+ *
2856
+ * ```python
2857
+ * def f():
2858
+ * print("Hello") # A tab `\t` indents the `print` statement.
2859
+ * ```
2860
+ *
2861
+ * PEP 8 recommends using spaces for [indentation](https://peps.python.org/pep-0008/#indentation).
2862
+ * We care about accessibility; if you do not need tabs for accessibility, we do not recommend you use them.
2863
+ *
2864
+ * See [`indent-width`](#indent-width) to configure the number of spaces per indentation and the tab width.
2865
+ */
2866
+ 'indent-style'?: IndentStyle | null;
2867
+ /**
2868
+ * The character Ruff uses at the end of a line.
2869
+ *
2870
+ * * `auto`: The newline style is detected automatically on a file per file basis. Files with mixed line endings will be converted to the first detected line ending. Defaults to `\n` for files that contain no line endings.
2871
+ * * `lf`: Line endings will be converted to `\n`. The default line ending on Unix.
2872
+ * * `cr-lf`: Line endings will be converted to `\r\n`. The default line ending on Windows.
2873
+ * * `native`: Line endings will be converted to `\n` on Unix and `\r\n` on Windows.
2874
+ */
2875
+ 'line-ending'?: LineEnding | null;
2876
+ /**
2877
+ * Whether to enable the unstable preview style formatting.
2878
+ */
2879
+ preview?: boolean | null;
2880
+ /**
2881
+ * Configures the preferred quote character for strings. The recommended options are
2882
+ *
2883
+ * * `double` (default): Use double quotes `"`
2884
+ * * `single`: Use single quotes `'`
2885
+ *
2886
+ * In compliance with [PEP 8](https://peps.python.org/pep-0008/) and [PEP 257](https://peps.python.org/pep-0257/),
2887
+ * Ruff prefers double quotes for triple quoted strings and docstrings even when using `quote-style = "single"`.
2888
+ *
2889
+ * Ruff deviates from using the configured quotes if doing so prevents the need for
2890
+ * escaping quote characters inside the string:
2891
+ *
2892
+ * ```python
2893
+ * a = "a string without any quotes"
2894
+ * b = "It's monday morning"
2895
+ * ```
2896
+ *
2897
+ * Ruff will change the quotes of the string assigned to `a` to single quotes when using `quote-style = "single"`.
2898
+ * However, Ruff uses double quotes for the string assigned to `b` because using single quotes would require escaping the `'`,
2899
+ * which leads to the less readable code: `'It\'s monday morning'`.
2900
+ *
2901
+ * In addition, Ruff supports the quote style `preserve` for projects that already use
2902
+ * a mixture of single and double quotes and can't migrate to the `double` or `single` style.
2903
+ * The quote style `preserve` leaves the quotes of all strings unchanged.
2904
+ */
2905
+ 'quote-style'?: QuoteStyle | null;
2906
+ /**
2907
+ * Ruff uses existing trailing commas as an indication that short lines should be left separate.
2908
+ * If this option is set to `true`, the magic trailing comma is ignored.
2909
+ *
2910
+ * For example, Ruff leaves the arguments separate even though
2911
+ * collapsing the arguments to a single line doesn't exceed the line length if `skip-magic-trailing-comma = false`:
2912
+ *
2913
+ * ```python
2914
+ * # The arguments remain on separate lines because of the trailing comma after `b`
2915
+ * def test(
2916
+ * a,
2917
+ * b,
2918
+ * ): pass
2919
+ * ```
2920
+ *
2921
+ * Setting `skip-magic-trailing-comma = true` changes the formatting to:
2922
+ *
2923
+ * ```python
2924
+ * # The arguments are collapsed to a single line because the trailing comma is ignored
2925
+ * def test(a, b):
2926
+ * pass
2927
+ * ```
2928
+ */
2929
+ 'skip-magic-trailing-comma'?: boolean | null;
2930
+ }
2931
+ /**
2932
+ * Options for the `isort` plugin.
2933
+ */
2934
+ export interface IsortOptions {
2935
+ /**
2936
+ * Sort imports taking into account case sensitivity.
2937
+ *
2938
+ * Note that the [`order-by-type`](#lint_isort_order-by-type) setting will
2939
+ * take precedence over this one when enabled.
2940
+ */
2941
+ 'case-sensitive'?: boolean | null;
2942
+ /**
2943
+ * An override list of tokens to always recognize as a Class for
2944
+ * [`order-by-type`](#lint_isort_order-by-type) regardless of casing.
2945
+ */
2946
+ classes?: string[] | null;
2947
+ /**
2948
+ * Combines as imports on the same line. See isort's [`combine-as-imports`](https://pycqa.github.io/isort/docs/configuration/options.html#combine-as-imports)
2949
+ * option.
2950
+ */
2951
+ 'combine-as-imports'?: boolean | null;
2952
+ /**
2953
+ * An override list of tokens to always recognize as a CONSTANT
2954
+ * for [`order-by-type`](#lint_isort_order-by-type) regardless of casing.
2955
+ */
2956
+ constants?: string[] | null;
2957
+ /**
2958
+ * Define a default section for any imports that don't fit into the specified [`section-order`](#lint_isort_section-order).
2959
+ */
2960
+ 'default-section'?: ImportSection | null;
2961
+ /**
2962
+ * Whether to automatically mark imports from within the same package as first-party.
2963
+ * For example, when `detect-same-package = true`, then when analyzing files within the
2964
+ * `foo` package, any imports from within the `foo` package will be considered first-party.
2965
+ *
2966
+ * This heuristic is often unnecessary when `src` is configured to detect all first-party
2967
+ * sources; however, if `src` is _not_ configured, this heuristic can be useful to detect
2968
+ * first-party imports from _within_ (but not _across_) first-party packages.
2969
+ */
2970
+ 'detect-same-package'?: boolean | null;
2971
+ /**
2972
+ * A list of modules to consider standard-library, in addition to those
2973
+ * known to Ruff in advance.
2974
+ *
2975
+ * Supports glob patterns. For more information on the glob syntax, refer
2976
+ * to the [`globset` documentation](https://docs.rs/globset/latest/globset/#syntax).
2977
+ */
2978
+ 'extra-standard-library'?: string[] | null;
2979
+ /**
2980
+ * Forces all from imports to appear on their own line.
2981
+ */
2982
+ 'force-single-line'?: boolean | null;
2983
+ /**
2984
+ * Don't sort straight-style imports (like `import sys`) before from-style
2985
+ * imports (like `from itertools import groupby`). Instead, sort the
2986
+ * imports by module, independent of import style.
2987
+ */
2988
+ 'force-sort-within-sections'?: boolean | null;
2989
+ /**
2990
+ * Force specific imports to the top of their appropriate section.
2991
+ */
2992
+ 'force-to-top'?: string[] | null;
2993
+ /**
2994
+ * Force `import from` statements with multiple members and at least one
2995
+ * alias (e.g., `import A as B`) to wrap such that every line contains
2996
+ * exactly one member. For example, this formatting would be retained,
2997
+ * rather than condensing to a single line:
2998
+ *
2999
+ * ```python
3000
+ * from .utils import (
3001
+ * test_directory as test_directory,
3002
+ * test_id as test_id
3003
+ * )
3004
+ * ```
3005
+ *
3006
+ * Note that this setting is only effective when combined with
3007
+ * `combine-as-imports = true`. When [`combine-as-imports`](#lint_isort_combine-as-imports) isn't
3008
+ * enabled, every aliased `import from` will be given its own line, in
3009
+ * which case, wrapping is not necessary.
3010
+ *
3011
+ * When using the formatter, ensure that [`format.skip-magic-trailing-comma`](#format_skip-magic-trailing-comma) is set to `false` (default)
3012
+ * when enabling `force-wrap-aliases` to avoid that the formatter collapses members if they all fit on a single line.
3013
+ */
3014
+ 'force-wrap-aliases'?: boolean | null;
3015
+ /**
3016
+ * A list of modules to separate into auxiliary block(s) of imports,
3017
+ * in the order specified.
3018
+ */
3019
+ 'forced-separate'?: string[] | null;
3020
+ /**
3021
+ * Whether to place `import from` imports before straight imports when sorting.
3022
+ *
3023
+ * For example, by default, imports will be sorted such that straight imports appear
3024
+ * before `import from` imports, as in:
3025
+ * ```python
3026
+ * import os
3027
+ * import sys
3028
+ * from typing import List
3029
+ * ```
3030
+ *
3031
+ * Setting `from-first = true` will instead sort such that `import from` imports appear
3032
+ * before straight imports, as in:
3033
+ * ```python
3034
+ * from typing import List
3035
+ * import os
3036
+ * import sys
3037
+ * ```
3038
+ */
3039
+ 'from-first'?: boolean | null;
3040
+ /**
3041
+ * A mapping from import section names to their heading comments.
3042
+ *
3043
+ * When set, a comment with the specified text will be added above imports
3044
+ * in the corresponding section. If a heading comment already exists, it
3045
+ * will be replaced.
3046
+ *
3047
+ * Compatible with isort's `import_heading_{section_name}` settings.
3048
+ */
3049
+ 'import-heading'?: {
3050
+ 'first-party'?: string;
3051
+ future?: string;
3052
+ 'local-folder'?: string;
3053
+ 'standard-library'?: string;
3054
+ 'third-party'?: string;
3055
+ [k: string]: string | undefined;
3056
+ } | null;
3057
+ /**
3058
+ * A list of modules to consider first-party, regardless of whether they
3059
+ * can be identified as such via introspection of the local filesystem.
3060
+ *
3061
+ * Supports glob patterns. For more information on the glob syntax, refer
3062
+ * to the [`globset` documentation](https://docs.rs/globset/latest/globset/#syntax).
3063
+ */
3064
+ 'known-first-party'?: string[] | null;
3065
+ /**
3066
+ * A list of modules to consider being a local folder.
3067
+ * Generally, this is reserved for relative imports (`from . import module`).
3068
+ *
3069
+ * Supports glob patterns. For more information on the glob syntax, refer
3070
+ * to the [`globset` documentation](https://docs.rs/globset/latest/globset/#syntax).
3071
+ */
3072
+ 'known-local-folder'?: string[] | null;
3073
+ /**
3074
+ * A list of modules to consider third-party, regardless of whether they
3075
+ * can be identified as such via introspection of the local filesystem.
3076
+ *
3077
+ * Supports glob patterns. For more information on the glob syntax, refer
3078
+ * to the [`globset` documentation](https://docs.rs/globset/latest/globset/#syntax).
3079
+ */
3080
+ 'known-third-party'?: string[] | null;
3081
+ /**
3082
+ * Sort imports by their string length, such that shorter imports appear
3083
+ * before longer imports. For example, by default, imports will be sorted
3084
+ * alphabetically, as in:
3085
+ * ```python
3086
+ * import collections
3087
+ * import os
3088
+ * ```
3089
+ *
3090
+ * Setting `length-sort = true` will instead sort such that shorter imports
3091
+ * appear before longer imports, as in:
3092
+ * ```python
3093
+ * import os
3094
+ * import collections
3095
+ * ```
3096
+ */
3097
+ 'length-sort'?: boolean | null;
3098
+ /**
3099
+ * Sort straight imports by their string length. Similar to [`length-sort`](#lint_isort_length-sort),
3100
+ * but applies only to straight imports and doesn't affect `from` imports.
3101
+ */
3102
+ 'length-sort-straight'?: boolean | null;
3103
+ /**
3104
+ * The number of blank lines to place after imports.
3105
+ * Use `-1` for automatic determination.
3106
+ *
3107
+ * Ruff uses at most one blank line after imports in typing stub files (files with `.pyi` extension) in accordance to
3108
+ * the typing style recommendations ([source](https://typing.python.org/en/latest/guides/writing_stubs.html#blank-lines)).
3109
+ *
3110
+ * When using the formatter, only the values `-1`, `1`, and `2` are compatible because
3111
+ * it enforces at least one empty and at most two empty lines after imports.
3112
+ */
3113
+ 'lines-after-imports'?: number | null;
3114
+ /**
3115
+ * The number of lines to place between "direct" and `import from` imports.
3116
+ *
3117
+ * When using the formatter, only the values `0` and `1` are compatible because
3118
+ * it preserves up to one empty line after imports in nested blocks.
3119
+ */
3120
+ 'lines-between-types'?: number | null;
3121
+ /**
3122
+ * A list of sections that should _not_ be delineated from the previous
3123
+ * section via empty lines.
3124
+ */
3125
+ 'no-lines-before'?: ImportSection[] | null;
3126
+ /**
3127
+ * Put all imports into the same section bucket.
3128
+ *
3129
+ * For example, rather than separating standard library and third-party imports, as in:
3130
+ * ```python
3131
+ * import os
3132
+ * import sys
3133
+ *
3134
+ * import numpy
3135
+ * import pandas
3136
+ * ```
3137
+ *
3138
+ * Setting `no-sections = true` will instead group all imports into a single section:
3139
+ * ```python
3140
+ * import numpy
3141
+ * import os
3142
+ * import pandas
3143
+ * import sys
3144
+ * ```
3145
+ */
3146
+ 'no-sections'?: boolean | null;
3147
+ /**
3148
+ * Order imports by type, which is determined by case, in addition to
3149
+ * alphabetically.
3150
+ *
3151
+ * Note that this option takes precedence over the
3152
+ * [`case-sensitive`](#lint_isort_case-sensitive) setting when enabled.
3153
+ */
3154
+ 'order-by-type'?: boolean | null;
3155
+ /**
3156
+ * Whether to place "closer" imports (fewer `.` characters, most local)
3157
+ * before "further" imports (more `.` characters, least local), or vice
3158
+ * versa.
3159
+ *
3160
+ * The default ("furthest-to-closest") is equivalent to isort's
3161
+ * [`reverse-relative`](https://pycqa.github.io/isort/docs/configuration/options.html#reverse-relative) default (`reverse-relative = false`); setting
3162
+ * this to "closest-to-furthest" is equivalent to isort's
3163
+ * `reverse-relative = true`.
3164
+ */
3165
+ 'relative-imports-order'?: RelativeImportsOrder | null;
3166
+ /**
3167
+ * Add the specified import line to all files.
3168
+ */
3169
+ 'required-imports'?: NameImports[] | null;
3170
+ /**
3171
+ * Override in which order the sections should be output. Can be used to move custom sections.
3172
+ */
3173
+ 'section-order'?: ImportSection[] | null;
3174
+ /**
3175
+ * A list of mappings from section names to modules.
3176
+ *
3177
+ * By default, imports are categorized according to their type (e.g., `future`, `third-party`,
3178
+ * and so on). This setting allows you to group modules into custom sections, to augment or
3179
+ * override the built-in sections.
3180
+ *
3181
+ * For example, to group all testing utilities, you could create a `testing` section:
3182
+ * ```toml
3183
+ * testing = ["pytest", "hypothesis"]
3184
+ * ```
3185
+ *
3186
+ * The values in the list are treated as glob patterns. For example, to match all packages in
3187
+ * the LangChain ecosystem (`langchain-core`, `langchain-openai`, etc.):
3188
+ * ```toml
3189
+ * langchain = ["langchain-*"]
3190
+ * ```
3191
+ *
3192
+ * Custom sections should typically be inserted into the [`section-order`](#lint_isort_section-order) list to ensure that
3193
+ * they're displayed as a standalone group and in the intended order, as in:
3194
+ * ```toml
3195
+ * section-order = [
3196
+ * "future",
3197
+ * "standard-library",
3198
+ * "third-party",
3199
+ * "first-party",
3200
+ * "local-folder",
3201
+ * "testing"
3202
+ * ]
3203
+ * ```
3204
+ *
3205
+ * If a custom section is omitted from [`section-order`](#lint_isort_section-order), imports in that section will be
3206
+ * assigned to the [`default-section`](#lint_isort_default-section) (which defaults to `third-party`).
3207
+ */
3208
+ sections?: {
3209
+ 'first-party'?: string[];
3210
+ future?: string[];
3211
+ 'local-folder'?: string[];
3212
+ 'standard-library'?: string[];
3213
+ 'third-party'?: string[];
3214
+ [k: string]: string[] | undefined;
3215
+ } | null;
3216
+ /**
3217
+ * One or more modules to exclude from the single line rule.
3218
+ */
3219
+ 'single-line-exclusions'?: string[] | null;
3220
+ /**
3221
+ * If a comma is placed after the last member in a multi-line import, then
3222
+ * the imports will never be folded into one line.
3223
+ *
3224
+ * See isort's [`split-on-trailing-comma`](https://pycqa.github.io/isort/docs/configuration/options.html#split-on-trailing-comma) option.
3225
+ *
3226
+ * When using the formatter, ensure that [`format.skip-magic-trailing-comma`](#format_skip-magic-trailing-comma) is set to `false` (default) when enabling `split-on-trailing-comma`
3227
+ * to avoid that the formatter removes the trailing commas.
3228
+ */
3229
+ 'split-on-trailing-comma'?: boolean | null;
3230
+ /**
3231
+ * An override list of tokens to always recognize as a var
3232
+ * for [`order-by-type`](#lint_isort_order-by-type) regardless of casing.
3233
+ */
3234
+ variables?: string[] | null;
3235
+ }
3236
+ /**
3237
+ * Configures how Ruff checks your code.
3238
+ *
3239
+ * Options specified in the `lint` section take precedence over the deprecated top-level settings.
3240
+ */
3241
+ export interface LintOptions {
3242
+ /**
3243
+ * A list of allowed "confusable" Unicode characters to ignore when
3244
+ * enforcing `RUF001`, `RUF002`, and `RUF003`.
3245
+ */
3246
+ 'allowed-confusables'?: string[] | null;
3247
+ /**
3248
+ * A regular expression used to identify "dummy" variables, or those which
3249
+ * should be ignored when enforcing (e.g.) unused-variable rules. The
3250
+ * default expression matches `_`, `__`, and `_var`, but not `_var_`.
3251
+ */
3252
+ 'dummy-variable-rgx'?: string | null;
3253
+ /**
3254
+ * A list of file patterns to exclude from linting in addition to the files excluded globally (see [`exclude`](#exclude), and [`extend-exclude`](#extend-exclude)).
3255
+ *
3256
+ * Exclusions are based on globs, and can be either:
3257
+ *
3258
+ * - Single-path patterns, like `.mypy_cache` (to exclude any directory
3259
+ * named `.mypy_cache` in the tree), `foo.py` (to exclude any file named
3260
+ * `foo.py`), or `foo_*.py` (to exclude any file matching `foo_*.py` ).
3261
+ * - Relative patterns, like `directory/foo.py` (to exclude that specific
3262
+ * file) or `directory/*.py` (to exclude any Python files in
3263
+ * `directory`). Note that these paths are relative to the project root
3264
+ * (e.g., the directory containing your `pyproject.toml`).
3265
+ *
3266
+ * For more information on the glob syntax, refer to the [`globset` documentation](https://docs.rs/globset/latest/globset/#syntax).
3267
+ */
3268
+ exclude?: string[] | null;
3269
+ /**
3270
+ * Whether to require exact codes to select preview rules. When enabled,
3271
+ * preview rules will not be selected by prefixes — the full code of each
3272
+ * preview rule will be required to enable the rule.
3273
+ */
3274
+ 'explicit-preview-rules'?: boolean | null;
3275
+ /**
3276
+ * A list of rule codes or prefixes to consider fixable, in addition to those
3277
+ * specified by [`fixable`](#lint_fixable).
3278
+ */
3279
+ 'extend-fixable'?: RuleSelector[] | null;
3280
+ /**
3281
+ * @deprecated
3282
+ * A list of rule codes or prefixes to ignore, in addition to those
3283
+ * specified by `ignore`.
3284
+ */
3285
+ 'extend-ignore'?: RuleSelector[] | null;
3286
+ /**
3287
+ * A list of mappings from file pattern to rule codes or prefixes to
3288
+ * exclude, in addition to any rules excluded by [`per-file-ignores`](#lint_per-file-ignores).
3289
+ */
3290
+ 'extend-per-file-ignores'?: {
3291
+ [k: string]: RuleSelector[] | undefined;
3292
+ } | null;
3293
+ /**
3294
+ * A list of rule codes or prefixes for which unsafe fixes should be considered
3295
+ * safe.
3296
+ */
3297
+ 'extend-safe-fixes'?: RuleSelector[] | null;
3298
+ /**
3299
+ * A list of rule codes or prefixes to enable, in addition to those
3300
+ * specified by [`select`](#lint_select).
3301
+ */
3302
+ 'extend-select'?: RuleSelector[] | null;
3303
+ /**
3304
+ * @deprecated
3305
+ * A list of rule codes or prefixes to consider non-auto-fixable, in addition to those
3306
+ * specified by [`unfixable`](#lint_unfixable).
3307
+ */
3308
+ 'extend-unfixable'?: RuleSelector[] | null;
3309
+ /**
3310
+ * A list of rule codes or prefixes for which safe fixes should be considered
3311
+ * unsafe.
3312
+ */
3313
+ 'extend-unsafe-fixes'?: RuleSelector[] | null;
3314
+ /**
3315
+ * A list of rule codes or prefixes that are unsupported by Ruff, but should be
3316
+ * preserved when (e.g.) validating `# noqa` directives. Useful for
3317
+ * retaining `# noqa` directives that cover plugins not yet implemented
3318
+ * by Ruff.
3319
+ */
3320
+ external?: string[] | null;
3321
+ /**
3322
+ * A list of rule codes or prefixes to consider fixable. By default,
3323
+ * all rules are considered fixable.
3324
+ */
3325
+ fixable?: RuleSelector[] | null;
3326
+ /**
3327
+ * Options for the `flake8-annotations` plugin.
3328
+ */
3329
+ 'flake8-annotations'?: Flake8AnnotationsOptions | null;
3330
+ /**
3331
+ * Options for the `flake8-bandit` plugin.
3332
+ */
3333
+ 'flake8-bandit'?: Flake8BanditOptions | null;
3334
+ /**
3335
+ * Options for the `flake8-boolean-trap` plugin.
3336
+ */
3337
+ 'flake8-boolean-trap'?: Flake8BooleanTrapOptions | null;
3338
+ /**
3339
+ * Options for the `flake8-bugbear` plugin.
3340
+ */
3341
+ 'flake8-bugbear'?: Flake8BugbearOptions | null;
3342
+ /**
3343
+ * Options for the `flake8-builtins` plugin.
3344
+ */
3345
+ 'flake8-builtins'?: Flake8BuiltinsOptions | null;
3346
+ /**
3347
+ * Options for the `flake8-comprehensions` plugin.
3348
+ */
3349
+ 'flake8-comprehensions'?: Flake8ComprehensionsOptions | null;
3350
+ /**
3351
+ * Options for the `flake8-copyright` plugin.
3352
+ */
3353
+ 'flake8-copyright'?: Flake8CopyrightOptions | null;
3354
+ /**
3355
+ * Options for the `flake8-errmsg` plugin.
3356
+ */
3357
+ 'flake8-errmsg'?: Flake8ErrMsgOptions | null;
3358
+ /**
3359
+ * Options for the `flake8-gettext` plugin.
3360
+ */
3361
+ 'flake8-gettext'?: Flake8GetTextOptions | null;
3362
+ /**
3363
+ * Options for the `flake8-implicit-str-concat` plugin.
3364
+ */
3365
+ 'flake8-implicit-str-concat'?: Flake8ImplicitStrConcatOptions | null;
3366
+ /**
3367
+ * Options for the `flake8-import-conventions` plugin.
3368
+ */
3369
+ 'flake8-import-conventions'?: Flake8ImportConventionsOptions | null;
3370
+ /**
3371
+ * Options for the `flake8-pytest-style` plugin.
3372
+ */
3373
+ 'flake8-pytest-style'?: Flake8PytestStyleOptions | null;
3374
+ /**
3375
+ * Options for the `flake8-quotes` plugin.
3376
+ */
3377
+ 'flake8-quotes'?: Flake8QuotesOptions | null;
3378
+ /**
3379
+ * Options for the `flake8_self` plugin.
3380
+ */
3381
+ 'flake8-self'?: Flake8SelfOptions | null;
3382
+ /**
3383
+ * Options for the `flake8-tidy-imports` plugin.
3384
+ */
3385
+ 'flake8-tidy-imports'?: Flake8TidyImportsOptions | null;
3386
+ /**
3387
+ * Options for the `flake8-type-checking` plugin.
3388
+ */
3389
+ 'flake8-type-checking'?: Flake8TypeCheckingOptions | null;
3390
+ /**
3391
+ * Options for the `flake8-unused-arguments` plugin.
3392
+ */
3393
+ 'flake8-unused-arguments'?: Flake8UnusedArgumentsOptions | null;
3394
+ /**
3395
+ * Whether to allow rules to add `from __future__ import annotations` in cases where this would
3396
+ * simplify a fix or enable a new diagnostic.
3397
+ *
3398
+ * For example, `TC001`, `TC002`, and `TC003` can move more imports into `TYPE_CHECKING` blocks
3399
+ * if `__future__` annotations are enabled.
3400
+ */
3401
+ 'future-annotations'?: boolean | null;
3402
+ /**
3403
+ * A list of rule codes or prefixes to ignore. Prefixes can specify exact
3404
+ * rules (like `F841`), entire categories (like `F`), or anything in
3405
+ * between.
3406
+ *
3407
+ * When breaking ties between enabled and disabled rules (via `select` and
3408
+ * `ignore`, respectively), more specific prefixes override less
3409
+ * specific prefixes. `ignore` takes precedence over `select` if the same
3410
+ * prefix appears in both.
3411
+ */
3412
+ ignore?: RuleSelector[] | null;
3413
+ /**
3414
+ * @deprecated
3415
+ * Avoid automatically removing unused imports in `__init__.py` files. Such
3416
+ * imports will still be flagged, but with a dedicated message suggesting
3417
+ * that the import is either added to the module's `__all__` symbol, or
3418
+ * re-exported with a redundant alias (e.g., `import os as os`).
3419
+ *
3420
+ * This option is enabled by default, but you can opt-in to removal of imports
3421
+ * via an unsafe fix.
3422
+ */
3423
+ 'ignore-init-module-imports'?: boolean | null;
3424
+ /**
3425
+ * Options for the `isort` plugin.
3426
+ */
3427
+ isort?: IsortOptions | null;
3428
+ /**
3429
+ * A list of objects that should be treated equivalently to a
3430
+ * `logging.Logger` object.
3431
+ *
3432
+ * This is useful for ensuring proper diagnostics (e.g., to identify
3433
+ * `logging` deprecations and other best-practices) for projects that
3434
+ * re-export a `logging.Logger` object from a common module.
3435
+ *
3436
+ * For example, if you have a module `logging_setup.py` with the following
3437
+ * contents:
3438
+ * ```python
3439
+ * import logging
3440
+ *
3441
+ * logger = logging.getLogger(__name__)
3442
+ * ```
3443
+ *
3444
+ * Adding `"logging_setup.logger"` to `logger-objects` will ensure that
3445
+ * `logging_setup.logger` is treated as a `logging.Logger` object when
3446
+ * imported from other modules (e.g., `from logging_setup import logger`).
3447
+ */
3448
+ 'logger-objects'?: string[] | null;
3449
+ /**
3450
+ * Options for the `mccabe` plugin.
3451
+ */
3452
+ mccabe?: McCabeOptions | null;
3453
+ /**
3454
+ * Options for the `pep8-naming` plugin.
3455
+ */
3456
+ 'pep8-naming'?: Pep8NamingOptions | null;
3457
+ /**
3458
+ * A list of mappings from file pattern to rule codes or prefixes to
3459
+ * exclude, when considering any matching files. An initial '!' negates
3460
+ * the file pattern.
3461
+ */
3462
+ 'per-file-ignores'?: {
3463
+ [k: string]: RuleSelector[] | undefined;
3464
+ } | null;
3465
+ /**
3466
+ * Whether to enable preview mode. When preview mode is enabled, Ruff will
3467
+ * use unstable rules and fixes.
3468
+ */
3469
+ preview?: boolean | null;
3470
+ /**
3471
+ * Options for the `pycodestyle` plugin.
3472
+ */
3473
+ pycodestyle?: PycodestyleOptions | null;
3474
+ /**
3475
+ * Options for the `pydoclint` plugin.
3476
+ */
3477
+ pydoclint?: PydoclintOptions | null;
3478
+ /**
3479
+ * Options for the `pydocstyle` plugin.
3480
+ */
3481
+ pydocstyle?: PydocstyleOptions | null;
3482
+ /**
3483
+ * Options for the `pyflakes` plugin.
3484
+ */
3485
+ pyflakes?: PyflakesOptions | null;
3486
+ /**
3487
+ * Options for the `pylint` plugin.
3488
+ */
3489
+ pylint?: PylintOptions | null;
3490
+ /**
3491
+ * Options for the `pyupgrade` plugin.
3492
+ */
3493
+ pyupgrade?: PyUpgradeOptions | null;
3494
+ /**
3495
+ * Options for the `ruff` plugin
3496
+ */
3497
+ ruff?: RuffOptions | null;
3498
+ /**
3499
+ * A list of rule codes or prefixes to enable. Prefixes can specify exact
3500
+ * rules (like `F841`), entire categories (like `F`), or anything in
3501
+ * between.
3502
+ *
3503
+ * When breaking ties between enabled and disabled rules (via `select` and
3504
+ * `ignore`, respectively), more specific prefixes override less
3505
+ * specific prefixes. `ignore` takes precedence over `select` if the
3506
+ * same prefix appears in both.
3507
+ */
3508
+ select?: RuleSelector[] | null;
3509
+ /**
3510
+ * A list of task tags to recognize (e.g., "TODO", "FIXME", "XXX").
3511
+ *
3512
+ * Comments starting with these tags will be ignored by commented-out code
3513
+ * detection (`ERA`), and skipped by line-length rules (`E501`) if
3514
+ * [`ignore-overlong-task-comments`](#lint_pycodestyle_ignore-overlong-task-comments) is set to `true`.
3515
+ */
3516
+ 'task-tags'?: string[] | null;
3517
+ /**
3518
+ * Whether to allow imports from the third-party `typing_extensions` module for Python versions
3519
+ * before a symbol was added to the first-party `typing` module.
3520
+ *
3521
+ * Many rules try to import symbols from the `typing` module but fall back to
3522
+ * `typing_extensions` for earlier versions of Python. This option can be used to disable this
3523
+ * fallback behavior in cases where `typing_extensions` is not installed.
3524
+ */
3525
+ 'typing-extensions'?: boolean | null;
3526
+ /**
3527
+ * A list of modules whose exports should be treated equivalently to
3528
+ * members of the `typing` module.
3529
+ *
3530
+ * This is useful for ensuring proper type annotation inference for
3531
+ * projects that re-export `typing` and `typing_extensions` members
3532
+ * from a compatibility module. If omitted, any members imported from
3533
+ * modules apart from `typing` and `typing_extensions` will be treated
3534
+ * as ordinary Python objects.
3535
+ */
3536
+ 'typing-modules'?: string[] | null;
3537
+ /**
3538
+ * A list of rule codes or prefixes to consider non-fixable.
3539
+ */
3540
+ unfixable?: RuleSelector[] | null;
3541
+ }
3542
+ /**
3543
+ * Options for the `mccabe` plugin.
3544
+ */
3545
+ export interface McCabeOptions {
3546
+ /**
3547
+ * The maximum McCabe complexity to allow before triggering `C901` errors.
3548
+ */
3549
+ 'max-complexity'?: number | null;
3550
+ }
3551
+ /**
3552
+ * Options for the `pep8-naming` plugin.
3553
+ */
3554
+ export interface Pep8NamingOptions {
3555
+ /**
3556
+ * A list of decorators that, when applied to a method, indicate that the
3557
+ * method should be treated as a class method (in addition to the builtin
3558
+ * `@classmethod`).
3559
+ *
3560
+ * For example, Ruff will expect that any method decorated by a decorator
3561
+ * in this list takes a `cls` argument as its first argument.
3562
+ *
3563
+ * Expects to receive a list of fully-qualified names (e.g., `pydantic.validator`,
3564
+ * rather than `validator`) or alternatively a plain name which is then matched against
3565
+ * the last segment in case the decorator itself consists of a dotted name.
3566
+ */
3567
+ 'classmethod-decorators'?: string[] | null;
3568
+ /**
3569
+ * Additional names (or patterns) to ignore when considering `pep8-naming` violations,
3570
+ * in addition to those included in [`ignore-names`](#lint_pep8-naming_ignore-names).
3571
+ *
3572
+ * Supports glob patterns. For example, to ignore all names starting with `test_`
3573
+ * or ending with `_test`, you could use `ignore-names = ["test_*", "*_test"]`.
3574
+ * For more information on the glob syntax, refer to the [`globset` documentation](https://docs.rs/globset/latest/globset/#syntax).
3575
+ */
3576
+ 'extend-ignore-names'?: string[] | null;
3577
+ /**
3578
+ * A list of names (or patterns) to ignore when considering `pep8-naming` violations.
3579
+ *
3580
+ * Supports glob patterns. For example, to ignore all names starting with `test_`
3581
+ * or ending with `_test`, you could use `ignore-names = ["test_*", "*_test"]`.
3582
+ * For more information on the glob syntax, refer to the [`globset` documentation](https://docs.rs/globset/latest/globset/#syntax).
3583
+ */
3584
+ 'ignore-names'?: string[] | null;
3585
+ /**
3586
+ * A list of decorators that, when applied to a method, indicate that the
3587
+ * method should be treated as a static method (in addition to the builtin
3588
+ * `@staticmethod`).
3589
+ *
3590
+ * For example, Ruff will expect that any method decorated by a decorator
3591
+ * in this list has no `self` or `cls` argument.
3592
+ *
3593
+ * Expects to receive a list of fully-qualified names (e.g., `belay.Device.teardown`,
3594
+ * rather than `teardown`) or alternatively a plain name which is then matched against
3595
+ * the last segment in case the decorator itself consists of a dotted name.
3596
+ */
3597
+ 'staticmethod-decorators'?: string[] | null;
3598
+ }
3599
+ /**
3600
+ * Options for the `pycodestyle` plugin.
3601
+ */
3602
+ export interface PycodestyleOptions {
3603
+ /**
3604
+ * Whether line-length violations (`E501`) should be triggered for
3605
+ * comments starting with [`task-tags`](#lint_task-tags) (by default: "TODO", "FIXME",
3606
+ * and "XXX").
3607
+ */
3608
+ 'ignore-overlong-task-comments'?: boolean | null;
3609
+ /**
3610
+ * The maximum line length to allow for [`doc-line-too-long`](https://docs.astral.sh/ruff/rules/doc-line-too-long/) violations within
3611
+ * documentation (`W505`), including standalone comments. By default,
3612
+ * this is set to `null` which disables reporting violations.
3613
+ *
3614
+ * The length is determined by the number of characters per line, except for lines containing Asian characters or emojis.
3615
+ * For these lines, the [unicode width](https://unicode.org/reports/tr11/) of each character is added up to determine the length.
3616
+ *
3617
+ * See the [`doc-line-too-long`](https://docs.astral.sh/ruff/rules/doc-line-too-long/) rule for more information.
3618
+ */
3619
+ 'max-doc-length'?: LineLength | null;
3620
+ /**
3621
+ * The maximum line length to allow for [`line-too-long`](https://docs.astral.sh/ruff/rules/line-too-long/) violations. By default,
3622
+ * this is set to the value of the [`line-length`](#line-length) option.
3623
+ *
3624
+ * Use this option when you want to detect extra-long lines that the formatter can't automatically split by setting
3625
+ * `pycodestyle.line-length` to a value larger than [`line-length`](#line-length).
3626
+ *
3627
+ * ```toml
3628
+ * # The formatter wraps lines at a length of 88.
3629
+ * line-length = 88
3630
+ *
3631
+ * [pycodestyle]
3632
+ * # E501 reports lines that exceed the length of 100.
3633
+ * max-line-length = 100
3634
+ * ```
3635
+ *
3636
+ * The length is determined by the number of characters per line, except for lines containing East Asian characters or emojis.
3637
+ * For these lines, the [unicode width](https://unicode.org/reports/tr11/) of each character is added up to determine the length.
3638
+ *
3639
+ * See the [`line-too-long`](https://docs.astral.sh/ruff/rules/line-too-long/) rule for more information.
3640
+ */
3641
+ 'max-line-length'?: LineLength | null;
3642
+ }
3643
+ /**
3644
+ * Options for the `pydoclint` plugin.
3645
+ */
3646
+ export interface PydoclintOptions {
3647
+ /**
3648
+ * Skip docstrings which fit on a single line.
3649
+ *
3650
+ * Note: The corresponding setting in `pydoclint`
3651
+ * is named `skip-checking-short-docstrings`.
3652
+ */
3653
+ 'ignore-one-line-docstrings'?: boolean | null;
3654
+ }
3655
+ /**
3656
+ * Options for the `pydocstyle` plugin.
3657
+ */
3658
+ export interface PydocstyleOptions {
3659
+ /**
3660
+ * Whether to use Google-style, NumPy-style conventions, or the [PEP 257](https://peps.python.org/pep-0257/)
3661
+ * defaults when analyzing docstring sections.
3662
+ *
3663
+ * Enabling a convention will disable all rules that are not included in
3664
+ * the specified convention. As such, the intended workflow is to enable a
3665
+ * convention and then selectively enable or disable any additional rules
3666
+ * on top of it.
3667
+ *
3668
+ * For example, to use Google-style conventions but avoid requiring
3669
+ * documentation for every function parameter:
3670
+ *
3671
+ * ```toml
3672
+ * [tool.ruff.lint]
3673
+ * # Enable all `pydocstyle` rules, limiting to those that adhere to the
3674
+ * # Google convention via `convention = "google"`, below.
3675
+ * select = ["D"]
3676
+ *
3677
+ * # On top of the Google convention, disable `D417`, which requires
3678
+ * # documentation for every function parameter.
3679
+ * ignore = ["D417"]
3680
+ *
3681
+ * [tool.ruff.lint.pydocstyle]
3682
+ * convention = "google"
3683
+ * ```
3684
+ *
3685
+ * To enable an additional rule that's excluded from the convention,
3686
+ * select the desired rule via its fully qualified rule code (e.g.,
3687
+ * `D400` instead of `D4` or `D40`):
3688
+ *
3689
+ * ```toml
3690
+ * [tool.ruff.lint]
3691
+ * # Enable D400 on top of the Google convention.
3692
+ * extend-select = ["D400"]
3693
+ *
3694
+ * [tool.ruff.lint.pydocstyle]
3695
+ * convention = "google"
3696
+ * ```
3697
+ */
3698
+ convention?: Convention | null;
3699
+ /**
3700
+ * Ignore docstrings for functions or methods decorated with the
3701
+ * specified fully-qualified decorators.
3702
+ */
3703
+ 'ignore-decorators'?: string[] | null;
3704
+ /**
3705
+ * If set to `true`, ignore missing documentation for `*args` and `**kwargs` parameters.
3706
+ */
3707
+ 'ignore-var-parameters'?: boolean | null;
3708
+ /**
3709
+ * A list of decorators that, when applied to a method, indicate that the
3710
+ * method should be treated as a property (in addition to the builtin
3711
+ * `@property` and standard-library `@functools.cached_property`).
3712
+ *
3713
+ * For example, Ruff will expect that any method decorated by a decorator
3714
+ * in this list can use a non-imperative summary line.
3715
+ */
3716
+ 'property-decorators'?: string[] | null;
3717
+ }
3718
+ /**
3719
+ * Options for the `pyflakes` plugin.
3720
+ */
3721
+ export interface PyflakesOptions {
3722
+ /**
3723
+ * A list of modules to ignore when considering unused imports.
3724
+ *
3725
+ * Used to prevent violations for specific modules that are known to have side effects on
3726
+ * import (e.g., `hvplot.pandas`).
3727
+ *
3728
+ * Modules in this list are expected to be fully-qualified names (e.g., `hvplot.pandas`). Any
3729
+ * submodule of a given module will also be ignored (e.g., given `hvplot`, `hvplot.pandas`
3730
+ * will also be ignored).
3731
+ */
3732
+ 'allowed-unused-imports'?: string[] | null;
3733
+ /**
3734
+ * Additional functions or classes to consider generic, such that any
3735
+ * subscripts should be treated as type annotation (e.g., `ForeignKey` in
3736
+ * `django.db.models.ForeignKey["User"]`.
3737
+ *
3738
+ * Expects to receive a list of fully-qualified names (e.g., `django.db.models.ForeignKey`,
3739
+ * rather than `ForeignKey`).
3740
+ */
3741
+ 'extend-generics'?: string[] | null;
3742
+ }
3743
+ /**
3744
+ * Options for the `pylint` plugin.
3745
+ */
3746
+ export interface PylintOptions {
3747
+ /**
3748
+ * Dunder methods name to allow, in addition to the default set from the
3749
+ * Python standard library (see `PLW3201`).
3750
+ */
3751
+ 'allow-dunder-method-names'?: string[] | null;
3752
+ /**
3753
+ * Constant types to ignore when used as "magic values" (see `PLR2004`).
3754
+ */
3755
+ 'allow-magic-value-types'?: ConstantType[] | null;
3756
+ /**
3757
+ * Maximum number of arguments allowed for a function or method definition
3758
+ * (see `PLR0913`).
3759
+ */
3760
+ 'max-args'?: number | null;
3761
+ /**
3762
+ * Maximum number of Boolean expressions allowed within a single `if` statement
3763
+ * (see `PLR0916`).
3764
+ */
3765
+ 'max-bool-expr'?: number | null;
3766
+ /**
3767
+ * Maximum number of branches allowed for a function or method body (see `PLR0912`).
3768
+ */
3769
+ 'max-branches'?: number | null;
3770
+ /**
3771
+ * Maximum number of local variables allowed for a function or method body (see `PLR0914`).
3772
+ */
3773
+ 'max-locals'?: number | null;
3774
+ /**
3775
+ * Maximum number of nested blocks allowed within a function or method body
3776
+ * (see `PLR1702`).
3777
+ */
3778
+ 'max-nested-blocks'?: number | null;
3779
+ /**
3780
+ * Maximum number of positional arguments allowed for a function or method definition
3781
+ * (see `PLR0917`).
3782
+ *
3783
+ * If not specified, defaults to the value of `max-args`.
3784
+ */
3785
+ 'max-positional-args'?: number | null;
3786
+ /**
3787
+ * Maximum number of public methods allowed for a class (see `PLR0904`).
3788
+ */
3789
+ 'max-public-methods'?: number | null;
3790
+ /**
3791
+ * Maximum number of return statements allowed for a function or method
3792
+ * body (see `PLR0911`)
3793
+ */
3794
+ 'max-returns'?: number | null;
3795
+ /**
3796
+ * Maximum number of statements allowed for a function or method body (see `PLR0915`).
3797
+ */
3798
+ 'max-statements'?: number | null;
3799
+ }
3800
+ /**
3801
+ * Options for the `pyupgrade` plugin.
3802
+ */
3803
+ export interface PyUpgradeOptions {
3804
+ /**
3805
+ * Whether to avoid [PEP 585](https://peps.python.org/pep-0585/) (`List[int]` -> `list[int]`) and [PEP 604](https://peps.python.org/pep-0604/)
3806
+ * (`Union[str, int]` -> `str | int`) rewrites even if a file imports
3807
+ * `from __future__ import annotations`.
3808
+ *
3809
+ * This setting is only applicable when the target Python version is below
3810
+ * 3.9 and 3.10 respectively, and is most commonly used when working with
3811
+ * libraries like Pydantic and FastAPI, which rely on the ability to parse
3812
+ * type annotations at runtime. The use of `from __future__ import annotations`
3813
+ * causes Python to treat the type annotations as strings, which typically
3814
+ * allows for the use of language features that appear in later Python
3815
+ * versions but are not yet supported by the current version (e.g., `str |
3816
+ * int`). However, libraries that rely on runtime type annotations will
3817
+ * break if the annotations are incompatible with the current Python
3818
+ * version.
3819
+ *
3820
+ * For example, while the following is valid Python 3.8 code due to the
3821
+ * presence of `from __future__ import annotations`, the use of `str | int`
3822
+ * prior to Python 3.10 will cause Pydantic to raise a `TypeError` at
3823
+ * runtime:
3824
+ *
3825
+ * ```python
3826
+ * from __future__ import annotations
3827
+ *
3828
+ * import pydantic
3829
+ *
3830
+ * class Foo(pydantic.BaseModel):
3831
+ * bar: str | int
3832
+ * ```
3833
+ */
3834
+ 'keep-runtime-typing'?: boolean | null;
3835
+ }
3836
+ /**
3837
+ * Options for the `ruff` plugin
3838
+ */
3839
+ export interface RuffOptions {
3840
+ /**
3841
+ * @deprecated
3842
+ * A list of callable names, whose result may be safely passed into
3843
+ * [`markupsafe.Markup`](https://markupsafe.palletsprojects.com/en/stable/escaping/#markupsafe.Markup).
3844
+ *
3845
+ * Expects to receive a list of fully-qualified names (e.g., `bleach.clean`, rather than `clean`).
3846
+ *
3847
+ * This setting helps you avoid false positives in code like:
3848
+ *
3849
+ * ```python
3850
+ * from bleach import clean
3851
+ * from markupsafe import Markup
3852
+ *
3853
+ * cleaned_markup = Markup(clean(some_user_input))
3854
+ * ```
3855
+ *
3856
+ * Where the use of [`bleach.clean`](https://bleach.readthedocs.io/en/latest/clean.html)
3857
+ * usually ensures that there's no XSS vulnerability.
3858
+ *
3859
+ * Although it is not recommended, you may also use this setting to whitelist other
3860
+ * kinds of calls, e.g. calls to i18n translation functions, where how safe that is
3861
+ * will depend on the implementation and how well the translations are audited.
3862
+ *
3863
+ * Another common use-case is to wrap the output of functions that generate markup
3864
+ * like [`xml.etree.ElementTree.tostring`](https://docs.python.org/3/library/xml.etree.elementtree.html#xml.etree.ElementTree.tostring)
3865
+ * or template rendering engines where sanitization of potential user input is either
3866
+ * already baked in or has to happen before rendering.
3867
+ */
3868
+ 'allowed-markup-calls'?: string[] | null;
3869
+ /**
3870
+ * @deprecated
3871
+ * A list of additional callable names that behave like
3872
+ * [`markupsafe.Markup`](https://markupsafe.palletsprojects.com/en/stable/escaping/#markupsafe.Markup).
3873
+ *
3874
+ * Expects to receive a list of fully-qualified names (e.g., `webhelpers.html.literal`, rather than
3875
+ * `literal`).
3876
+ */
3877
+ 'extend-markup-names'?: string[] | null;
3878
+ /**
3879
+ * Whether to prefer accessing items keyed by tuples with
3880
+ * parentheses around the tuple (see `RUF031`).
3881
+ */
3882
+ 'parenthesize-tuple-in-subscript'?: boolean | null;
3883
+ /**
3884
+ * Whether to require `__init__.py` files to contain no code at all, including imports and
3885
+ * docstrings (see `RUF067`).
3886
+ */
3887
+ 'strictly-empty-init-modules'?: boolean | null;
3888
+ }