1
1
from __future__ import annotations
2
2
3
3
import configparser
4
+ import importlib .metadata
4
5
import sys
5
6
from unittest import mock
6
7
7
8
import pytest
8
9
9
- from flake8 ._compat import importlib_metadata
10
10
from flake8 .exceptions import ExecutionError
11
11
from flake8 .exceptions import FailedToLoadPlugin
12
12
from flake8 .plugins import finder
13
13
from flake8 .plugins .pyflakes import FlakesChecker
14
14
15
15
16
16
def _ep (name = "X" , value = "dne:dne" , group = "flake8.extension" ):
17
- return importlib_metadata .EntryPoint (name , value , group )
17
+ return importlib . metadata .EntryPoint (name , value , group )
18
18
19
19
20
20
def _plugin (package = "local" , version = "local" , ep = None ):
@@ -91,7 +91,7 @@ def pyflakes_dist(tmp_path):
91
91
d = tmp_path .joinpath ("pyflakes.dist-info" )
92
92
d .mkdir ()
93
93
d .joinpath ("METADATA" ).write_text (metadata )
94
- return importlib_metadata .PathDistribution (d )
94
+ return importlib . metadata .PathDistribution (d )
95
95
96
96
97
97
@pytest .fixture
@@ -104,7 +104,7 @@ def pycodestyle_dist(tmp_path):
104
104
d = tmp_path .joinpath ("pycodestyle.dist-info" )
105
105
d .mkdir ()
106
106
d .joinpath ("METADATA" ).write_text (metadata )
107
- return importlib_metadata .PathDistribution (d )
107
+ return importlib . metadata .PathDistribution (d )
108
108
109
109
110
110
@pytest .fixture
@@ -131,7 +131,7 @@ def flake8_dist(tmp_path):
131
131
d .mkdir ()
132
132
d .joinpath ("METADATA" ).write_text (metadata )
133
133
d .joinpath ("entry_points.txt" ).write_text (entry_points )
134
- return importlib_metadata .PathDistribution (d )
134
+ return importlib . metadata .PathDistribution (d )
135
135
136
136
137
137
@pytest .fixture
@@ -153,13 +153,13 @@ def flake8_foo_dist(tmp_path):
153
153
d .mkdir ()
154
154
d .joinpath ("METADATA" ).write_text (metadata )
155
155
d .joinpath ("entry_points.txt" ).write_text (eps )
156
- return importlib_metadata .PathDistribution (d )
156
+ return importlib . metadata .PathDistribution (d )
157
157
158
158
159
159
@pytest .fixture
160
160
def mock_distribution (pyflakes_dist , pycodestyle_dist ):
161
161
dists = {"pyflakes" : pyflakes_dist , "pycodestyle" : pycodestyle_dist }
162
- with mock .patch .object (importlib_metadata , "distribution" , dists .get ):
162
+ with mock .patch .object (importlib . metadata , "distribution" , dists .get ):
163
163
yield
164
164
165
165
@@ -172,7 +172,7 @@ def test_flake8_plugins(flake8_dist, mock_distribution):
172
172
finder .Plugin (
173
173
"pyflakes" ,
174
174
"9000.1.0" ,
175
- importlib_metadata .EntryPoint (
175
+ importlib . metadata .EntryPoint (
176
176
"F" ,
177
177
"flake8.plugins.pyflakes:FlakesChecker" ,
178
178
"flake8.extension" ,
@@ -181,7 +181,7 @@ def test_flake8_plugins(flake8_dist, mock_distribution):
181
181
finder .Plugin (
182
182
"pycodestyle" ,
183
183
"9000.2.0" ,
184
- importlib_metadata .EntryPoint (
184
+ importlib . metadata .EntryPoint (
185
185
"E" ,
186
186
"flake8.plugins.pycodestyle:pycodestyle_logical" ,
187
187
"flake8.extension" ,
@@ -190,7 +190,7 @@ def test_flake8_plugins(flake8_dist, mock_distribution):
190
190
finder .Plugin (
191
191
"pycodestyle" ,
192
192
"9000.2.0" ,
193
- importlib_metadata .EntryPoint (
193
+ importlib . metadata .EntryPoint (
194
194
"W" ,
195
195
"flake8.plugins.pycodestyle:pycodestyle_physical" ,
196
196
"flake8.extension" ,
@@ -199,14 +199,14 @@ def test_flake8_plugins(flake8_dist, mock_distribution):
199
199
finder .Plugin (
200
200
"flake8" ,
201
201
"9001" ,
202
- importlib_metadata .EntryPoint (
202
+ importlib . metadata .EntryPoint (
203
203
"default" , "flake8.formatting.default:Default" , "flake8.report"
204
204
),
205
205
),
206
206
finder .Plugin (
207
207
"flake8" ,
208
208
"9001" ,
209
- importlib_metadata .EntryPoint (
209
+ importlib . metadata .EntryPoint (
210
210
"pylint" , "flake8.formatting.default:Pylint" , "flake8.report"
211
211
),
212
212
),
@@ -220,7 +220,7 @@ def test_importlib_plugins(
220
220
mock_distribution ,
221
221
caplog ,
222
222
):
223
- """Ensure we can load plugins from importlib_metadata ."""
223
+ """Ensure we can load plugins from importlib.metadata ."""
224
224
225
225
# make sure flake8-colors is skipped
226
226
flake8_colors_metadata = """\
@@ -236,7 +236,7 @@ def test_importlib_plugins(
236
236
flake8_colors_d .mkdir ()
237
237
flake8_colors_d .joinpath ("METADATA" ).write_text (flake8_colors_metadata )
238
238
flake8_colors_d .joinpath ("entry_points.txt" ).write_text (flake8_colors_eps )
239
- flake8_colors_dist = importlib_metadata .PathDistribution (flake8_colors_d )
239
+ flake8_colors_dist = importlib . metadata .PathDistribution (flake8_colors_d )
240
240
241
241
unrelated_metadata = """\
242
242
Metadata-Version: 2.1
@@ -251,10 +251,10 @@ def test_importlib_plugins(
251
251
unrelated_d .mkdir ()
252
252
unrelated_d .joinpath ("METADATA" ).write_text (unrelated_metadata )
253
253
unrelated_d .joinpath ("entry_points.txt" ).write_text (unrelated_eps )
254
- unrelated_dist = importlib_metadata .PathDistribution (unrelated_d )
254
+ unrelated_dist = importlib . metadata .PathDistribution (unrelated_d )
255
255
256
256
with mock .patch .object (
257
- importlib_metadata ,
257
+ importlib . metadata ,
258
258
"distributions" ,
259
259
return_value = [
260
260
flake8_dist ,
@@ -269,14 +269,14 @@ def test_importlib_plugins(
269
269
finder .Plugin (
270
270
"flake8-foo" ,
271
271
"1.2.3" ,
272
- importlib_metadata .EntryPoint (
272
+ importlib . metadata .EntryPoint (
273
273
"Q" , "flake8_foo:Plugin" , "flake8.extension"
274
274
),
275
275
),
276
276
finder .Plugin (
277
277
"pycodestyle" ,
278
278
"9000.2.0" ,
279
- importlib_metadata .EntryPoint (
279
+ importlib . metadata .EntryPoint (
280
280
"E" ,
281
281
"flake8.plugins.pycodestyle:pycodestyle_logical" ,
282
282
"flake8.extension" ,
@@ -285,7 +285,7 @@ def test_importlib_plugins(
285
285
finder .Plugin (
286
286
"pycodestyle" ,
287
287
"9000.2.0" ,
288
- importlib_metadata .EntryPoint (
288
+ importlib . metadata .EntryPoint (
289
289
"W" ,
290
290
"flake8.plugins.pycodestyle:pycodestyle_physical" ,
291
291
"flake8.extension" ,
@@ -294,7 +294,7 @@ def test_importlib_plugins(
294
294
finder .Plugin (
295
295
"pyflakes" ,
296
296
"9000.1.0" ,
297
- importlib_metadata .EntryPoint (
297
+ importlib . metadata .EntryPoint (
298
298
"F" ,
299
299
"flake8.plugins.pyflakes:FlakesChecker" ,
300
300
"flake8.extension" ,
@@ -303,21 +303,21 @@ def test_importlib_plugins(
303
303
finder .Plugin (
304
304
"flake8" ,
305
305
"9001" ,
306
- importlib_metadata .EntryPoint (
306
+ importlib . metadata .EntryPoint (
307
307
"default" , "flake8.formatting.default:Default" , "flake8.report"
308
308
),
309
309
),
310
310
finder .Plugin (
311
311
"flake8" ,
312
312
"9001" ,
313
- importlib_metadata .EntryPoint (
313
+ importlib . metadata .EntryPoint (
314
314
"pylint" , "flake8.formatting.default:Pylint" , "flake8.report"
315
315
),
316
316
),
317
317
finder .Plugin (
318
318
"flake8-foo" ,
319
319
"1.2.3" ,
320
- importlib_metadata .EntryPoint (
320
+ importlib . metadata .EntryPoint (
321
321
"foo" , "flake8_foo:Formatter" , "flake8.report"
322
322
),
323
323
),
@@ -336,7 +336,7 @@ def test_duplicate_dists(flake8_dist):
336
336
# some poorly packaged pythons put lib and lib64 on sys.path resulting in
337
337
# duplicates from `importlib.metadata.distributions`
338
338
with mock .patch .object (
339
- importlib_metadata ,
339
+ importlib . metadata ,
340
340
"distributions" ,
341
341
return_value = [
342
342
flake8_dist ,
@@ -369,7 +369,7 @@ def test_find_local_plugins(local_plugin_cfg):
369
369
finder .Plugin (
370
370
"local" ,
371
371
"local" ,
372
- importlib_metadata .EntryPoint (
372
+ importlib . metadata .EntryPoint (
373
373
"X" ,
374
374
"mod:attr" ,
375
375
"flake8.extension" ,
@@ -378,7 +378,7 @@ def test_find_local_plugins(local_plugin_cfg):
378
378
finder .Plugin (
379
379
"local" ,
380
380
"local" ,
381
- importlib_metadata .EntryPoint (
381
+ importlib . metadata .EntryPoint (
382
382
"Y" ,
383
383
"mod2:attr" ,
384
384
"flake8.extension" ,
@@ -387,7 +387,7 @@ def test_find_local_plugins(local_plugin_cfg):
387
387
finder .Plugin (
388
388
"local" ,
389
389
"local" ,
390
- importlib_metadata .EntryPoint (
390
+ importlib . metadata .EntryPoint (
391
391
"Z" ,
392
392
"mod3:attr" ,
393
393
"flake8.report" ,
@@ -474,7 +474,7 @@ def test_find_plugins(
474
474
):
475
475
opts = finder .PluginOptions .blank ()
476
476
with mock .patch .object (
477
- importlib_metadata ,
477
+ importlib . metadata ,
478
478
"distributions" ,
479
479
return_value = [flake8_dist , flake8_foo_dist ],
480
480
):
@@ -484,52 +484,52 @@ def test_find_plugins(
484
484
finder .Plugin (
485
485
"flake8" ,
486
486
"9001" ,
487
- importlib_metadata .EntryPoint (
487
+ importlib . metadata .EntryPoint (
488
488
"default" , "flake8.formatting.default:Default" , "flake8.report"
489
489
),
490
490
),
491
491
finder .Plugin (
492
492
"flake8" ,
493
493
"9001" ,
494
- importlib_metadata .EntryPoint (
494
+ importlib . metadata .EntryPoint (
495
495
"pylint" , "flake8.formatting.default:Pylint" , "flake8.report"
496
496
),
497
497
),
498
498
finder .Plugin (
499
499
"flake8-foo" ,
500
500
"1.2.3" ,
501
- importlib_metadata .EntryPoint (
501
+ importlib . metadata .EntryPoint (
502
502
"Q" , "flake8_foo:Plugin" , "flake8.extension"
503
503
),
504
504
),
505
505
finder .Plugin (
506
506
"flake8-foo" ,
507
507
"1.2.3" ,
508
- importlib_metadata .EntryPoint (
508
+ importlib . metadata .EntryPoint (
509
509
"foo" , "flake8_foo:Formatter" , "flake8.report"
510
510
),
511
511
),
512
512
finder .Plugin (
513
513
"local" ,
514
514
"local" ,
515
- importlib_metadata .EntryPoint ("X" , "mod:attr" , "flake8.extension" ),
515
+ importlib . metadata .EntryPoint ("X" , "mod:attr" , "flake8.extension" ),
516
516
),
517
517
finder .Plugin (
518
518
"local" ,
519
519
"local" ,
520
- importlib_metadata .EntryPoint (
520
+ importlib . metadata .EntryPoint (
521
521
"Y" , "mod2:attr" , "flake8.extension"
522
522
),
523
523
),
524
524
finder .Plugin (
525
525
"local" ,
526
526
"local" ,
527
- importlib_metadata .EntryPoint ("Z" , "mod3:attr" , "flake8.report" ),
527
+ importlib . metadata .EntryPoint ("Z" , "mod3:attr" , "flake8.report" ),
528
528
),
529
529
finder .Plugin (
530
530
"pycodestyle" ,
531
531
"9000.2.0" ,
532
- importlib_metadata .EntryPoint (
532
+ importlib . metadata .EntryPoint (
533
533
"E" ,
534
534
"flake8.plugins.pycodestyle:pycodestyle_logical" ,
535
535
"flake8.extension" ,
@@ -538,7 +538,7 @@ def test_find_plugins(
538
538
finder .Plugin (
539
539
"pycodestyle" ,
540
540
"9000.2.0" ,
541
- importlib_metadata .EntryPoint (
541
+ importlib . metadata .EntryPoint (
542
542
"W" ,
543
543
"flake8.plugins.pycodestyle:pycodestyle_physical" ,
544
544
"flake8.extension" ,
@@ -547,7 +547,7 @@ def test_find_plugins(
547
547
finder .Plugin (
548
548
"pyflakes" ,
549
549
"9000.1.0" ,
550
- importlib_metadata .EntryPoint (
550
+ importlib . metadata .EntryPoint (
551
551
"F" ,
552
552
"flake8.plugins.pyflakes:FlakesChecker" ,
553
553
"flake8.extension" ,
@@ -570,7 +570,7 @@ def test_find_plugins_plugin_is_present(flake8_foo_dist):
570
570
)
571
571
572
572
with mock .patch .object (
573
- importlib_metadata ,
573
+ importlib . metadata ,
574
574
"distributions" ,
575
575
return_value = [flake8_foo_dist ],
576
576
):
@@ -593,7 +593,7 @@ def test_find_plugins_plugin_is_missing(flake8_dist, flake8_foo_dist):
593
593
)
594
594
595
595
with mock .patch .object (
596
- importlib_metadata ,
596
+ importlib . metadata ,
597
597
"distributions" ,
598
598
return_value = [flake8_dist ],
599
599
):
@@ -623,7 +623,7 @@ def test_find_plugins_name_normalization(flake8_foo_dist):
623
623
)
624
624
625
625
with mock .patch .object (
626
- importlib_metadata ,
626
+ importlib . metadata ,
627
627
"distributions" ,
628
628
return_value = [flake8_foo_dist ],
629
629
):