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