-
-
Notifications
You must be signed in to change notification settings - Fork 1.7k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
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
- Loading branch information
1 parent
05e02c1
commit 43c3406
Showing
4 changed files
with
154 additions
and
6 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -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 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -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 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters