• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1import sys
2
3
4def disable_importlib_metadata_finder(metadata):
5    """
6    Ensure importlib_metadata doesn't provide older, incompatible
7    Distributions.
8
9    Workaround for #3102.
10    """
11    try:
12        import importlib_metadata
13    except ImportError:
14        return
15    if importlib_metadata is metadata:
16        return
17    to_remove = [
18        ob
19        for ob in sys.meta_path
20        if isinstance(ob, importlib_metadata.MetadataPathFinder)
21    ]
22    for item in to_remove:
23        sys.meta_path.remove(item)
24
25
26if sys.version_info < (3, 10):
27    from setuptools.extern import importlib_metadata as metadata
28    disable_importlib_metadata_finder(metadata)
29else:
30    import importlib.metadata as metadata  # noqa: F401
31
32
33if sys.version_info < (3, 9):
34    from setuptools.extern import importlib_resources as resources
35else:
36    import importlib.resources as resources  # noqa: F401
37