]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
[3.12] gh-116811: Ensure MetadataPathFinder.invalidate_caches is reachable when deleg...
authorJason R. Coombs <jaraco@jaraco.com>
Fri, 15 Mar 2024 13:59:28 +0000 (09:59 -0400)
committerGitHub <noreply@github.com>
Fri, 15 Mar 2024 13:59:28 +0000 (09:59 -0400)
* Make MetadataPathFinder a proper classmethod.

* In PathFinder.invalidate_caches, also invoke MetadataPathFinder.invalidate_caches.

* Add blurb
(cherry picked from commit 5f52d20a93908196f74271db8437cc1ba7e1e262)

Lib/importlib/_bootstrap_external.py
Lib/importlib/metadata/__init__.py
Misc/NEWS.d/next/Library/2024-03-14-10-01-23.gh-issue-116811._h5iKP.rst [new file with mode: 0644]

index e6f75a9f6f63d457f1ad64cea8bbcba36b7ff565..61dafc0f4cb953396958d92791440006771ea02c 100644 (file)
@@ -1450,6 +1450,9 @@ class PathFinder:
         # https://bugs.python.org/issue45703
         _NamespacePath._epoch += 1
 
+        from importlib.metadata import MetadataPathFinder
+        MetadataPathFinder.invalidate_caches()
+
     @staticmethod
     def _path_hooks(path):
         """Search sys.path_hooks for a finder for 'path'."""
index 82e0ce1b281c54c0ed80b8de0717f96883a05800..54156e93afc5d443e040900c0f0a32e2648f0c97 100644 (file)
@@ -795,6 +795,7 @@ class MetadataPathFinder(DistributionFinder):
             path.search(prepared) for path in map(FastPath, paths)
         )
 
+    @classmethod
     def invalidate_caches(cls):
         FastPath.__new__.cache_clear()
 
diff --git a/Misc/NEWS.d/next/Library/2024-03-14-10-01-23.gh-issue-116811._h5iKP.rst b/Misc/NEWS.d/next/Library/2024-03-14-10-01-23.gh-issue-116811._h5iKP.rst
new file mode 100644 (file)
index 0000000..0016863
--- /dev/null
@@ -0,0 +1,2 @@
+In ``PathFinder.invalidate_caches``, delegate to
+``MetadataPathFinder.invalidate_caches``.