mirror of
https://github.com/davidhalter/typeshed.git
synced 2025-12-08 04:54:47 +08:00
Improve Python 2.7 inspect stub
This patch consists of: * Splitting and reordering the content into sections corresponding to the module's documentation sections * Implementing some missing functions * Adding TODOs for missing stuff (I may've missed something) The signature of isgenerator() (was: Any argument, is: argument of type object) is changed for consistency with other is* functions I added here, after some considerations I couldn't decide whether it should be object or Any - if object is not advised please let me know.
This commit is contained in:
@@ -1,14 +1,53 @@
|
||||
# TODO incomplete
|
||||
from typing import Any, List, Tuple, NamedTuple
|
||||
from types import TracebackType, FrameType, ModuleType
|
||||
from typing import Any, Callable, List, Optional, Tuple, NamedTuple
|
||||
|
||||
def isgenerator(object: Any) -> bool: ...
|
||||
# Types and members
|
||||
ModuleInfo = NamedTuple('ModuleInfo', [('name', str),
|
||||
('suffix', str),
|
||||
('mode', str),
|
||||
('module_type', int),
|
||||
])
|
||||
def getmembers(object: object,
|
||||
predicate: Callable[[Any], bool] = ...,
|
||||
) -> List[Tuple[str, object]]: ...
|
||||
def getmoduleinfo(path: str) -> Optional[ModuleInfo]: ...
|
||||
def getmodulename(path: str) -> Optional[str]: ...
|
||||
|
||||
class _Frame:
|
||||
...
|
||||
_FrameRecord = Tuple[_Frame, str, int, str, List[str], int]
|
||||
def ismodule(object: object) -> bool: ...
|
||||
def isclass(object: object) -> bool: ...
|
||||
def ismethod(object: object) -> bool: ...
|
||||
def isfunction(object: object) -> bool: ...
|
||||
def isisgeneratorfunction(object: object) -> bool: ...
|
||||
def isgenerator(object: object) -> bool: ...
|
||||
def istraceback(object: object) -> bool: ...
|
||||
def isframe(object: object) -> bool: ...
|
||||
def iscode(object: object) -> bool: ...
|
||||
def isbuiltin(object: object) -> bool: ...
|
||||
def isroutine(object: object) -> bool: ...
|
||||
def isabstract(object: object) -> bool: ...
|
||||
def ismethoddescriptor(object: object) -> bool: ...
|
||||
def isdatadescriptor(object: object) -> bool: ...
|
||||
def isgetsetdescriptor(object: object) -> bool: ...
|
||||
def ismemberdescriptor(object: object) -> bool: ...
|
||||
|
||||
def currentframe() -> _FrameRecord: ...
|
||||
def stack(context: int = ...) -> List[_FrameRecord]: ...
|
||||
# Retrieving source code
|
||||
def getdoc(object: object) -> str: ...
|
||||
def getcomments(object: object) -> str: ...
|
||||
def getfile(object: object) -> str: ...
|
||||
def getmodule(object: object) -> ModuleType: ...
|
||||
def getsourcefile(object: object) -> str: ...
|
||||
# TODO restrict to "module, class, method, function, traceback, frame,
|
||||
# or code object"
|
||||
def getsourcelines(object: object) -> Tuple[List[str], int]: ...
|
||||
# TODO restrict to "a module, class, method, function, traceback, frame,
|
||||
# or code object"
|
||||
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: ...
|
||||
|
||||
ArgSpec = NamedTuple('ArgSpec', [('args', List[str]),
|
||||
('varargs', str),
|
||||
@@ -17,3 +56,23 @@ ArgSpec = NamedTuple('ArgSpec', [('args', List[str]),
|
||||
])
|
||||
|
||||
def getargspec(func: object) -> ArgSpec: ...
|
||||
# TODO make the return type more specific
|
||||
def getargvalues(frame: FrameType) -> Any: ...
|
||||
# TODO formatargspec
|
||||
# TODO formatargvalues
|
||||
def getmro(cls: type) -> Tuple[type, ...]: ...
|
||||
# TODO getcallargs
|
||||
|
||||
# The interpreter stack
|
||||
# TODO getframeinfo
|
||||
# TODO getouterframes
|
||||
def getinnerframes(traceback: TracebackType, context: int = ...) -> List[FrameType]:
|
||||
...
|
||||
|
||||
class _Frame:
|
||||
...
|
||||
_FrameRecord = Tuple[_Frame, str, int, str, List[str], int]
|
||||
|
||||
def currentframe() -> _FrameRecord: ...
|
||||
def stack(context: int = ...) -> List[_FrameRecord]: ...
|
||||
def trace(context: int = ...) -> List[_FrameRecord]: ...
|
||||
|
||||
Reference in New Issue
Block a user