_importlib.py 891 B

123456789101112131415161718192021222324252627282930313233343536
  1. import sys
  2. def disable_importlib_metadata_finder(metadata):
  3. """
  4. Ensure importlib_metadata doesn't provide older, incompatible
  5. Distributions.
  6. Workaround for #3102.
  7. """
  8. try:
  9. import importlib_metadata
  10. except ImportError:
  11. return
  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. if sys.version_info < (3, 10):
  22. from setuptools.extern import importlib_metadata as metadata
  23. disable_importlib_metadata_finder(metadata)
  24. else:
  25. import importlib.metadata as metadata # noqa: F401
  26. if sys.version_info < (3, 9):
  27. from setuptools.extern import importlib_resources as resources
  28. else:
  29. import importlib.resources as resources # noqa: F401