1import importlib.abc 2import types 3from typing import Any, Callable, List, Optional, Sequence, Tuple, Union 4 5# TODO: the loaders seem a bit backwards, attribute is protocol but __init__ arg isn't? 6class ModuleSpec: 7 def __init__( 8 self, 9 name: str, 10 loader: Optional[importlib.abc.Loader], 11 *, 12 origin: Optional[str] = ..., 13 loader_state: Any = ..., 14 is_package: Optional[bool] = ..., 15 ) -> None: ... 16 name: str 17 loader: Optional[importlib.abc._LoaderProtocol] 18 origin: Optional[str] 19 submodule_search_locations: Optional[List[str]] 20 loader_state: Any 21 cached: Optional[str] 22 parent: Optional[str] 23 has_location: bool 24 25class BuiltinImporter(importlib.abc.MetaPathFinder, importlib.abc.InspectLoader): 26 # MetaPathFinder 27 @classmethod 28 def find_module( 29 cls, fullname: str, path: Optional[Sequence[importlib.abc._Path]] = ... 30 ) -> Optional[importlib.abc.Loader]: ... 31 @classmethod 32 def find_spec( 33 cls, fullname: str, path: Optional[Sequence[importlib.abc._Path]] = ..., target: Optional[types.ModuleType] = ... 34 ) -> Optional[ModuleSpec]: ... 35 # InspectLoader 36 @classmethod 37 def is_package(cls, fullname: str) -> bool: ... 38 @classmethod 39 def load_module(cls, fullname: str) -> types.ModuleType: ... 40 @classmethod 41 def get_code(cls, fullname: str) -> None: ... 42 @classmethod 43 def get_source(cls, fullname: str) -> None: ... 44 # Loader 45 @staticmethod 46 def module_repr(module: types.ModuleType) -> str: ... 47 @classmethod 48 def create_module(cls, spec: ModuleSpec) -> Optional[types.ModuleType]: ... 49 @classmethod 50 def exec_module(cls, module: types.ModuleType) -> None: ... 51 52class FrozenImporter(importlib.abc.MetaPathFinder, importlib.abc.InspectLoader): 53 # MetaPathFinder 54 @classmethod 55 def find_module( 56 cls, fullname: str, path: Optional[Sequence[importlib.abc._Path]] = ... 57 ) -> Optional[importlib.abc.Loader]: ... 58 @classmethod 59 def find_spec( 60 cls, fullname: str, path: Optional[Sequence[importlib.abc._Path]] = ..., target: Optional[types.ModuleType] = ... 61 ) -> Optional[ModuleSpec]: ... 62 # InspectLoader 63 @classmethod 64 def is_package(cls, fullname: str) -> bool: ... 65 @classmethod 66 def load_module(cls, fullname: str) -> types.ModuleType: ... 67 @classmethod 68 def get_code(cls, fullname: str) -> None: ... 69 @classmethod 70 def get_source(cls, fullname: str) -> None: ... 71 # Loader 72 @staticmethod 73 def module_repr(m: types.ModuleType) -> str: ... 74 @classmethod 75 def create_module(cls, spec: ModuleSpec) -> Optional[types.ModuleType]: ... 76 @staticmethod 77 def exec_module(module: types.ModuleType) -> None: ... 78 79class WindowsRegistryFinder(importlib.abc.MetaPathFinder): 80 @classmethod 81 def find_module( 82 cls, fullname: str, path: Optional[Sequence[importlib.abc._Path]] = ... 83 ) -> Optional[importlib.abc.Loader]: ... 84 @classmethod 85 def find_spec( 86 cls, fullname: str, path: Optional[Sequence[importlib.abc._Path]] = ..., target: Optional[types.ModuleType] = ... 87 ) -> Optional[ModuleSpec]: ... 88 89class PathFinder: 90 @classmethod 91 def invalidate_caches(cls) -> None: ... 92 @classmethod 93 def find_spec( 94 cls, fullname: str, path: Optional[Sequence[Union[bytes, str]]] = ..., target: Optional[types.ModuleType] = ... 95 ) -> Optional[ModuleSpec]: ... 96 @classmethod 97 def find_module(cls, fullname: str, path: Optional[Sequence[Union[bytes, str]]] = ...) -> Optional[importlib.abc.Loader]: ... 98 99SOURCE_SUFFIXES: List[str] 100DEBUG_BYTECODE_SUFFIXES: List[str] 101OPTIMIZED_BYTECODE_SUFFIXES: List[str] 102BYTECODE_SUFFIXES: List[str] 103EXTENSION_SUFFIXES: List[str] 104 105def all_suffixes() -> List[str]: ... 106 107class FileFinder(importlib.abc.PathEntryFinder): 108 path: str 109 def __init__(self, path: str, *loader_details: Tuple[importlib.abc.Loader, List[str]]) -> None: ... 110 @classmethod 111 def path_hook( 112 cls, *loader_details: Tuple[importlib.abc.Loader, List[str]] 113 ) -> Callable[[str], importlib.abc.PathEntryFinder]: ... 114 115class SourceFileLoader(importlib.abc.FileLoader, importlib.abc.SourceLoader): 116 def set_data(self, path: importlib.abc._Path, data: bytes, *, _mode: int = ...) -> None: ... 117 118class SourcelessFileLoader(importlib.abc.FileLoader, importlib.abc.SourceLoader): ... 119 120class ExtensionFileLoader(importlib.abc.ExecutionLoader): 121 def __init__(self, name: str, path: importlib.abc._Path) -> None: ... 122 def get_filename(self, name: Optional[str] = ...) -> importlib.abc._Path: ... 123 def get_source(self, fullname: str) -> None: ... 124