From 295ffbe4f3ddd9282e6ac55c448e734c133d6911 Mon Sep 17 00:00:00 2001 From: Matthias Kramm Date: Tue, 31 Jan 2017 14:34:18 -0800 Subject: [PATCH] improve inspect.pyi (#908) --- stdlib/2/inspect.pyi | 26 ++++++++++++++------------ 1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/stdlib/2/inspect.pyi b/stdlib/2/inspect.pyi index e86da66ba..192d891c8 100644 --- a/stdlib/2/inspect.pyi +++ b/stdlib/2/inspect.pyi @@ -1,6 +1,5 @@ -# TODO incomplete from types import TracebackType, FrameType, ModuleType -from typing import Any, Callable, List, Optional, Tuple, Union, NamedTuple +from typing import Any, Dict, Callable, List, Optional, Tuple, Union, NamedTuple, Type # Types and members ModuleInfo = NamedTuple('ModuleInfo', [('name', str), @@ -47,22 +46,25 @@ def getsource(object: object) -> str: ... def cleandoc(doc: str) -> str: ... # Classes and functions -# TODO make the return type more specific -def getclasstree(classes: List[type], unique: bool = ...) -> Any: ... +def getclasstree(classes: List[type], unique: bool = ...) -> List[ + Union[Tuple[type, Tuple[type, ...]], list]]: ... ArgSpec = NamedTuple('ArgSpec', [('args', List[str]), - ('varargs', str), - ('keywords', str), + ('varargs', Optional[str]), + ('keywords', Optional[str]), ('defaults', tuple), ]) def getargspec(func: object) -> ArgSpec: ... -# TODO make the return type more specific -def getargvalues(frame: FrameType) -> Any: ... -# TODO formatargspec -# TODO formatargvalues +def getargvalues(frame: FrameType) -> ArgSpec: ... +def formatargspec(args, varargs=..., varkw=..., defaults=..., + formatarg=..., formatvarargs=..., formatvarkw=..., formatvalue=..., + join=...) -> str: ... +def formatargvalues(args, varargs=..., varkw=..., defaults=..., + formatarg=..., formatvarargs=..., formatvarkw=..., formatvalue=..., + join=...) -> str: ... def getmro(cls: type) -> Tuple[type, ...]: ... -# TODO getcallargs +def getcallargs(func, *args, **kwds) -> Dict[str, Any]: ... # The interpreter stack @@ -83,6 +85,6 @@ def getouterframes(frame: FrameType, context: int = ...) -> List[FrameType]: ... def getframeinfo(frame: Union[FrameType, TracebackType], context: int = ...) -> Traceback: ... def getinnerframes(traceback: TracebackType, context: int = ...) -> List[FrameType]: ... -def currentframe() -> FrameType: ... +def currentframe(depth: int = ...) -> FrameType: ... def stack(context: int = ...) -> List[_FrameRecord]: ... def trace(context: int = ...) -> List[_FrameRecord]: ...