From 7daf9654fb91e738a455e98a2c60bd812692730f Mon Sep 17 00:00:00 2001 From: Amin Alaee Date: Sat, 8 Aug 2026 09:38:02 +0200 Subject: [PATCH] [importlib] Add MetaPathFinder/PathEntryFinder.discover for Python 3.15 --- stdlib/@tests/stubtest_allowlists/py315.txt | 3 --- stdlib/importlib/abc.pyi | 6 +++++- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/stdlib/@tests/stubtest_allowlists/py315.txt b/stdlib/@tests/stubtest_allowlists/py315.txt index fcd88edaf791..d6094f5f3537 100644 --- a/stdlib/@tests/stubtest_allowlists/py315.txt +++ b/stdlib/@tests/stubtest_allowlists/py315.txt @@ -4,7 +4,6 @@ _frozen_importlib.BuiltinImporter.load_module _frozen_importlib.FrozenImporter.load_module -_frozen_importlib_external.FileFinder.discover _frozen_importlib_external.NamespaceLoader.load_module _frozen_importlib_external.NamespacePath _frozen_importlib_external.PathFinder.discover @@ -23,8 +22,6 @@ dataclasses.field importlib._abc.Loader.load_module importlib._bootstrap_external.NamespacePath importlib.abc.InspectLoader.source_to_code -importlib.abc.MetaPathFinder.discover -importlib.abc.PathEntryFinder.discover importlib.resources._common.package_to_anchor mailbox._ProxyFile.__class_getitem__ multiprocessing.process.BaseProcess.__init__ diff --git a/stdlib/importlib/abc.pyi b/stdlib/importlib/abc.pyi index 945b8d2080d1..640ac686d7e3 100644 --- a/stdlib/importlib/abc.pyi +++ b/stdlib/importlib/abc.pyi @@ -3,7 +3,7 @@ import sys import types from _typeshed import ReadableBuffer, StrPath from abc import ABCMeta, abstractmethod -from collections.abc import Iterator, Mapping, Sequence +from collections.abc import Iterable, Iterator, Mapping, Sequence from importlib import _bootstrap_external from importlib._abc import Loader as Loader from importlib.machinery import ModuleSpec @@ -68,6 +68,8 @@ class MetaPathFinder(metaclass=ABCMeta): def find_spec( self, fullname: str, path: Sequence[str] | None, target: types.ModuleType | None = ..., / ) -> ModuleSpec | None: ... + if sys.version_info >= (3, 15): + def discover(self, parent: ModuleSpec | None = None) -> Iterable[ModuleSpec]: ... class PathEntryFinder(metaclass=ABCMeta): if sys.version_info < (3, 12): @@ -79,6 +81,8 @@ class PathEntryFinder(metaclass=ABCMeta): def invalidate_caches(self) -> None: ... # Not defined on the actual class, but expected to exist. def find_spec(self, fullname: str, target: types.ModuleType | None = ...) -> ModuleSpec | None: ... + if sys.version_info >= (3, 15): + def discover(self, parent: ModuleSpec | None = None) -> Iterable[ModuleSpec]: ... class FileLoader(_bootstrap_external.FileLoader, ResourceLoader, ExecutionLoader, metaclass=ABCMeta): name: str