mirror of
https://github.com/davidhalter/typeshed.git
synced 2025-12-20 10:51:15 +08:00
Use protocols instead of importlib.abc.Loader/MetaPathFinder/PathEntryFinder (#11890)
This commit is contained in:
committed by
GitHub
parent
6565e8a0a0
commit
b42e3b2e89
@@ -64,7 +64,7 @@ class SourceLoader(ResourceLoader, ExecutionLoader, metaclass=ABCMeta):
|
||||
|
||||
# The base classes differ starting in 3.10:
|
||||
if sys.version_info >= (3, 10):
|
||||
# Please keep in sync with sys._MetaPathFinder
|
||||
# Please keep in sync with _typeshed.importlib.MetaPathFinderProtocol
|
||||
class MetaPathFinder(metaclass=ABCMeta):
|
||||
if sys.version_info < (3, 12):
|
||||
def find_module(self, fullname: str, path: Sequence[str] | None) -> Loader | None: ...
|
||||
@@ -85,7 +85,7 @@ if sys.version_info >= (3, 10):
|
||||
def find_spec(self, fullname: str, target: types.ModuleType | None = ...) -> ModuleSpec | None: ...
|
||||
|
||||
else:
|
||||
# Please keep in sync with sys._MetaPathFinder
|
||||
# Please keep in sync with _typeshed.importlib.MetaPathFinderProtocol
|
||||
class MetaPathFinder(Finder):
|
||||
def find_module(self, fullname: str, path: Sequence[str] | None) -> Loader | None: ...
|
||||
def invalidate_caches(self) -> None: ...
|
||||
|
||||
@@ -3,6 +3,7 @@ import importlib.machinery
|
||||
import sys
|
||||
import types
|
||||
from _typeshed import ReadableBuffer, StrOrBytesPath
|
||||
from _typeshed.importlib import LoaderProtocol
|
||||
from collections.abc import Callable
|
||||
from typing import Any
|
||||
from typing_extensions import ParamSpec
|
||||
@@ -23,13 +24,13 @@ def source_from_cache(path: str) -> str: ...
|
||||
def decode_source(source_bytes: ReadableBuffer) -> str: ...
|
||||
def find_spec(name: str, package: str | None = None) -> importlib.machinery.ModuleSpec | None: ...
|
||||
def spec_from_loader(
|
||||
name: str, loader: importlib.abc.Loader | None, *, origin: str | None = None, is_package: bool | None = None
|
||||
name: str, loader: LoaderProtocol | None, *, origin: str | None = None, is_package: bool | None = None
|
||||
) -> importlib.machinery.ModuleSpec | None: ...
|
||||
def spec_from_file_location(
|
||||
name: str,
|
||||
location: StrOrBytesPath | None = None,
|
||||
*,
|
||||
loader: importlib.abc.Loader | None = None,
|
||||
loader: LoaderProtocol | None = None,
|
||||
submodule_search_locations: list[str] | None = ...,
|
||||
) -> importlib.machinery.ModuleSpec | None: ...
|
||||
def module_from_spec(spec: importlib.machinery.ModuleSpec) -> types.ModuleType: ...
|
||||
|
||||
Reference in New Issue
Block a user