Skip to content

Commit ee416a2

Browse files
committed
Prevent vendored importlib_metadata from loading distributions from older importlib_metadata. Fixes #3102.
1 parent abbaacc commit ee416a2

File tree

1 file changed

+20
-0
lines changed

1 file changed

+20
-0
lines changed

setuptools/_importlib.py

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,28 @@
11
import sys
22

33

4+
def disable_importlib_metadata_finder(metadata):
5+
"""
6+
Ensure importlib_metadata doesn't provide older, incompatible
7+
Distributions.
8+
9+
Workaround for #3102.
10+
"""
11+
import importlib_metadata
12+
if importlib_metadata is metadata:
13+
return
14+
to_remove = [
15+
ob
16+
for ob in sys.meta_path
17+
if isinstance(ob, importlib_metadata.MetadataPathFinder)
18+
]
19+
for item in to_remove:
20+
sys.meta_path.remove(item)
21+
22+
423
if sys.version_info < (3, 10):
524
from setuptools.extern import importlib_metadata as metadata
25+
disable_importlib_metadata_finder(metadata)
626
else:
727
import importlib.metadata as metadata # noqa: F401
828

0 commit comments

Comments
 (0)