mirror of
https://github.com/davidhalter/typeshed.git
synced 2025-12-07 04:34:28 +08:00
Add stubs for importlib.machinery (#323)
* Fix some misspelled method names that were also missing 'self' * Initial stubs for importlib.machinery * Use importlib.machinery.ModuleSpec everywhere
This commit is contained in:
committed by
Guido van Rossum
parent
05e02c188f
commit
43c3406770
19
stdlib/3/importlib/_modulespec.pyi
Normal file
19
stdlib/3/importlib/_modulespec.pyi
Normal file
@@ -0,0 +1,19 @@
|
||||
# ModuleSpec is in its own file to deal with import loops; defined in
|
||||
# importlib.machinery.
|
||||
import importlib.abc
|
||||
import sys
|
||||
from typing import Any, Optional
|
||||
|
||||
if sys.version_info >= (3, 4):
|
||||
class ModuleSpec:
|
||||
def __init__(self, name: str, loader: Optional[importlib.abc.Loader], *,
|
||||
origin: str = None, loader_state: Any = None,
|
||||
is_package: bool = None) -> None: ...
|
||||
name = ... # type: str
|
||||
loader = ... # type: Optional[importlib.abc.Loader]
|
||||
origin = ... # type: Optional[str]
|
||||
submodule_search_locations = ... # type: Optional[List[str]]
|
||||
loader_state = ... # type: Any
|
||||
cached = ... # type: Optional[str]
|
||||
parent = ... # type: Optional[str]
|
||||
has_location = ... # type: bool
|
||||
@@ -1,4 +1,5 @@
|
||||
import abc
|
||||
from importlib._modulespec import ModuleSpec
|
||||
import sys
|
||||
import types
|
||||
from typing import Mapping, Optional, Sequence, Union
|
||||
@@ -10,7 +11,8 @@ class Loader(metaclass=abc.ABCMeta):
|
||||
if sys.version_info >= (3, 3):
|
||||
def module_repr(self, module: types.ModuleType) -> str: ...
|
||||
if sys.version_info >= (3, 4):
|
||||
def create_module(self, spec: Any) -> Optional[types.ModuleType]: ...
|
||||
def create_module(self, spec: ModuleSpec) -> Optional[types.ModuleType]:
|
||||
...
|
||||
# Not defined on the actual class for backwards-compatibility reasons,
|
||||
# but expected in new code.
|
||||
def exec_module(self, module: types.ModuleType) -> None: ...
|
||||
@@ -64,8 +66,9 @@ if sys.version_info >= (3, 3):
|
||||
def invalidate_caches(self) -> None: ...
|
||||
if sys.version_info >= (3, 4):
|
||||
# Not defined on the actual class, but expected to exist.
|
||||
def findAny(fullname: str, path: Optional[Sequence[_Path]],
|
||||
target: types.ModuleType = None) -> Optional[Any]:
|
||||
def find_spec(self, fullname: str, path: Optional[Sequence[_Path]],
|
||||
target: types.ModuleType = None
|
||||
) -> Optional[ModuleSpec]:
|
||||
...
|
||||
|
||||
class PathEntryFinder(Finder):
|
||||
@@ -75,8 +78,9 @@ if sys.version_info >= (3, 3):
|
||||
def invalidate_caches(self) -> None: ...
|
||||
if sys.version_info >= (3, 4):
|
||||
# Not defined on the actual class, but expected to exist.
|
||||
def findAny(fullname: str,
|
||||
target: types.ModuleType = None) -> Optional[Any]:
|
||||
def find_spec(self, fullname: str,
|
||||
target: types.ModuleType = None
|
||||
) -> Optional[ModuleSpec]:
|
||||
...
|
||||
|
||||
class FileLoader(ResourceLoader, ExecutionLoader):
|
||||
|
||||
124
stdlib/3/importlib/machinery.pyi
Normal file
124
stdlib/3/importlib/machinery.pyi
Normal file
@@ -0,0 +1,124 @@
|
||||
import importlib.abc
|
||||
import sys
|
||||
import types
|
||||
from typing import Any, Callable, List, Optional, Sequence, Tuple, Union
|
||||
|
||||
# ModuleSpec is defined in this module, but for circular import reasons exists
|
||||
# in its own stub file.
|
||||
from importlib._modulespec import ModuleSpec
|
||||
|
||||
class BuiltinImporter(importlib.abc.MetaPathFinder,
|
||||
importlib.abc.InspectLoader):
|
||||
# MetaPathFinder
|
||||
@classmethod
|
||||
def find_module(cls, fullname: str,
|
||||
path: Optional[Sequence[importlib.abc._Path]]
|
||||
) -> Optional[importlib.abc.Loader]:
|
||||
...
|
||||
if sys.version_info >= (3, 4):
|
||||
@classmethod
|
||||
def find_spec(cls, fullname: str,
|
||||
path: Optional[Sequence[importlib.abc._Path]],
|
||||
target: types.ModuleType = None) -> Optional[ModuleSpec]:
|
||||
...
|
||||
# InspectLoader
|
||||
@classmethod
|
||||
def is_package(cls, fullname: str) -> bool: ...
|
||||
@classmethod
|
||||
def load_module(cls, fullname: str) -> types.ModuleType: ...
|
||||
@classmethod
|
||||
def get_code(cls, fullname: str) -> None: ... # type: ignore
|
||||
@classmethod
|
||||
def get_source(cls, fullname: str) -> None: ... # type: ignore
|
||||
# Loader
|
||||
@classmethod
|
||||
def load_module(cls, fullname: str) -> types.ModuleType: ...
|
||||
if sys.version_info >= (3, 3):
|
||||
@staticmethod
|
||||
def module_repr(module: types.ModuleType) -> str: ... # type: ignore
|
||||
if sys.version_info >= (3, 4):
|
||||
@classmethod
|
||||
def create_module(cls, spec: ModuleSpec) -> Optional[types.ModuleType]:
|
||||
...
|
||||
@classmethod
|
||||
def exec_module(cls, module: types.ModuleType) -> None: ...
|
||||
|
||||
class FrozenImporter(importlib.abc.MetaPathFinder, importlib.abc.InspectLoader):
|
||||
# MetaPathFinder
|
||||
@classmethod
|
||||
def find_module(cls, fullname: str,
|
||||
path: Optional[Sequence[importlib.abc._Path]]
|
||||
) -> Optional[importlib.abc.Loader]:
|
||||
...
|
||||
if sys.version_info >= (3, 4):
|
||||
@classmethod
|
||||
def find_spec(cls, fullname: str,
|
||||
path: Optional[Sequence[importlib.abc._Path]],
|
||||
target: types.ModuleType = None) -> Optional[ModuleSpec]:
|
||||
...
|
||||
# InspectLoader
|
||||
@classmethod
|
||||
def is_package(cls, fullname: str) -> bool: ...
|
||||
@classmethod
|
||||
def load_module(cls, fullname: str) -> types.ModuleType: ...
|
||||
@classmethod
|
||||
def get_code(cls, fullname: str) -> None: ... # type: ignore
|
||||
@classmethod
|
||||
def get_source(cls, fullname: str) -> None: ... # type: ignore
|
||||
# Loader
|
||||
@classmethod
|
||||
def load_module(cls, fullname: str) -> types.ModuleType: ...
|
||||
if sys.version_info >= (3, 3):
|
||||
@staticmethod
|
||||
def module_repr(module: types.ModuleType) -> str: ... # type: ignore
|
||||
if sys.version_info >= (3, 4):
|
||||
@classmethod
|
||||
def create_module(cls, spec: ModuleSpec) -> Optional[types.ModuleType]:
|
||||
...
|
||||
@staticmethod
|
||||
def exec_module(module: types.ModuleType) -> None: ... # type: ignore
|
||||
|
||||
class WindowsRegisteryFinder(importlib.abc.MetaPathFinder):
|
||||
@classmethod
|
||||
def find_module(cls, fullname: str,
|
||||
path: Optional[Sequence[importlib.abc._Path]]
|
||||
) -> Optional[importlib.abc.Loader]:
|
||||
...
|
||||
if sys.version_info >= (3, 4):
|
||||
@classmethod
|
||||
def find_spec(cls, fullname: str,
|
||||
path: Optional[Sequence[importlib.abc._Path]],
|
||||
target: types.ModuleType = None) -> Optional[ModuleSpec]:
|
||||
...
|
||||
|
||||
class PathFinder(importlib.abc.MetaPathFinder): ...
|
||||
|
||||
if sys.version_info >= (3, 3):
|
||||
SOURCE_SUFFIXES = ... # type: List[str]
|
||||
DEBUG_BYTECODE_SUFFIXES = ... # type: List[str]
|
||||
OPTIMIZED_BYTECODE_SUFFIXES = ... # type: List[str]
|
||||
BYTECODE_SUFFIXES = ... # type: List[str]
|
||||
EXTENSION_SUFFIXES = ... # type: List[str]
|
||||
|
||||
def all_suffixes() -> List[str]: ...
|
||||
|
||||
class FileFinder(importlib.abc.PathEntryFinder):
|
||||
path = ... # type: str
|
||||
def __init__(self, path: str,
|
||||
*loader_details: Tuple[importlib.abc.Loader, List[str]]
|
||||
) -> None: ...
|
||||
@classmethod
|
||||
def path_hook(*loader_details: Tuple[importlib.abc.Loader, List[str]]
|
||||
) -> Callable[[str], importlib.abc.PathEntryFinder]: ...
|
||||
|
||||
class SourceFileLoader(importlib.abc.FileLoader,
|
||||
importlib.abc.SourceLoader):
|
||||
...
|
||||
|
||||
class SourcelessFileLoader(importlib.abc.FileLoader,
|
||||
importlib.abc.SourceLoader):
|
||||
...
|
||||
|
||||
class ExtensionFileLoader(importlib.abc.ExecutionLoader):
|
||||
def get_filename(self, fullname: str) -> importlib.abc._Path: ...
|
||||
def get_source(self, fullname: str) -> None: ... # type: ignore
|
||||
@@ -4,6 +4,7 @@
|
||||
# TODO parts of this should be conditional on version
|
||||
|
||||
import importlib.abc
|
||||
from importlib._modulespec import ModuleSpec
|
||||
import sys
|
||||
from typing import (
|
||||
Any, Callable, Dict, Generic, Iterator, Mapping, Optional, Tuple, TypeVar,
|
||||
@@ -115,7 +116,7 @@ class ModuleType:
|
||||
__package__ = ... # type: Optional[str]
|
||||
# Should be Optional[ModuleSpec], but importlib.machinery has no stub
|
||||
# yet.
|
||||
__spec__ = ... # type: Optional[Any]
|
||||
__spec__ = ... # type: Optional[ModuleSpec]
|
||||
def __init__(self, name: str, doc: str) -> None: ...
|
||||
|
||||
class TracebackType:
|
||||
|
||||
Reference in New Issue
Block a user