Skip to content

Commit

Permalink
Add type hints for typechecked and related decorators
Browse files Browse the repository at this point in the history
  • Loading branch information
dbarnett committed Aug 19, 2020
1 parent 4004925 commit 6db2b06
Show file tree
Hide file tree
Showing 3 changed files with 44 additions and 0 deletions.
Empty file added pytypes/py.typed
Empty file.
41 changes: 41 additions & 0 deletions pytypes/typechecker.pyi
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
# Generated using mypy stubgen, then editing to add types for some definitions.

from .type_util import TypeAgent
from types import ModuleType
from typing import Any, Optional, Callable, TypeVar

# TODO: Fill in proper types for _pytypes___import__.
def _pytypes___import__(name: Any, globls: Optional[Any] = ..., locls: Optional[Any] = ..., fromlist: Any = ..., level: int = ...): ...

# TODO: Fill in proper types for _DelayedCheck.
class _DelayedCheck:
func: Any = ...
method: Any = ...
class_name: Any = ...
base_method: Any = ...
base_class: Any = ...
exc_info: Any = ...
raising_module_name: Any = ...
def __init__(self, func: Any, method: Any, class_name: Any, base_method: Any, base_class: Any, exc_info: Any) -> None: ...
def run_check(self, raise_NameError: bool = ...) -> None: ...

T_Callable = TypeVar('T_Callable', bound=Callable)
def override(func: T_Callable, auto: bool = ...) -> T_Callable: ...
def typechecked_func(func: T_Callable, force: bool = ..., argType: Optional[Any] = ..., resType: Optional[Any] = ..., prop_getter: bool = ...): ...
def typechecked_class(cls, force: bool = ..., force_recursive: bool = ...): ...
T_Mod = TypeVar('T_Mod', ModuleType, str)
def typechecked_module(md: T_Mod, force_recursive: bool = ...) -> T_Mod: ...

T = TypeVar('T', Callable, property, type, str, ModuleType)
def typechecked(memb: T) -> T: ...
T_Class = TypeVar('T_Class', bound=type)
def auto_override_class(cls: T_Class, force: bool = ..., force_recursive: bool = ...) -> T_Class: ...
def auto_override_module(md: T_Mod, force_recursive: bool = ...) -> T_Mod: ...
def auto_override(memb: T) -> T: ...
def no_type_check(memb: T) -> T: ...
def is_no_type_check(memb: T) -> bool: ...
def check_argument_types(cllable: Optional[Callable] = ..., call_args: Optional[Any] = ..., clss: Optional[type] = ..., caller_level: int = ...) -> Callable: ...
def check_return_type(value: Any, cllable: Optional[Callable] = ..., clss: Optional[type] = ..., caller_level: int = ...) -> Callable: ...

class TypeChecker(TypeAgent):
def __init__(self, all_threads: bool = ...) -> None: ...
3 changes: 3 additions & 0 deletions setup.cfg
Original file line number Diff line number Diff line change
Expand Up @@ -3,3 +3,6 @@ max-line-length = 99

[wheel]
universal = 1

[options.package_data]
pytypes = py.typed, *.pyi

0 comments on commit 6db2b06

Please sign in to comment.