massive update, probably broken
[dotfiles/.git] / .config / coc / extensions / node_modules / coc-pyright / node_modules / pyright / dist / typeshed-fallback / stdlib / inspect.pyi
diff --git a/.config/coc/extensions/node_modules/coc-pyright/node_modules/pyright/dist/typeshed-fallback/stdlib/inspect.pyi b/.config/coc/extensions/node_modules/coc-pyright/node_modules/pyright/dist/typeshed-fallback/stdlib/inspect.pyi
new file mode 100644 (file)
index 0000000..e3711cc
--- /dev/null
@@ -0,0 +1,392 @@
+import enum
+import sys
+import types
+from _typeshed import Self
+from collections import OrderedDict
+from collections.abc import Awaitable, Callable, Generator, Mapping, Sequence
+from types import (
+    AsyncGeneratorType,
+    BuiltinFunctionType,
+    BuiltinMethodType,
+    CodeType,
+    CoroutineType,
+    FrameType,
+    FunctionType,
+    GeneratorType,
+    GetSetDescriptorType,
+    LambdaType,
+    MethodType,
+    ModuleType,
+    TracebackType,
+)
+
+if sys.version_info >= (3, 7):
+    from types import ClassMethodDescriptorType, WrapperDescriptorType, MemberDescriptorType, MethodDescriptorType
+
+from typing import Any, ClassVar, NamedTuple, Protocol, Tuple, Type, TypeVar, Union
+from typing_extensions import Literal, TypeGuard
+
+#
+# Types and members
+#
+class EndOfBlock(Exception): ...
+
+class BlockFinder:
+    indent: int
+    islambda: bool
+    started: bool
+    passline: bool
+    indecorator: bool
+    decoratorhasargs: bool
+    last: int
+    def tokeneater(self, type: int, token: str, srowcol: tuple[int, int], erowcol: tuple[int, int], line: str) -> None: ...
+
+CO_OPTIMIZED: int
+CO_NEWLOCALS: int
+CO_VARARGS: int
+CO_VARKEYWORDS: int
+CO_NESTED: int
+CO_GENERATOR: int
+CO_NOFREE: int
+CO_COROUTINE: int
+CO_ITERABLE_COROUTINE: int
+CO_ASYNC_GENERATOR: int
+TPFLAGS_IS_ABSTRACT: int
+
+def getmembers(object: object, predicate: Callable[[Any], bool] | None = ...) -> list[tuple[str, Any]]: ...
+def getmodulename(path: str) -> str | None: ...
+def ismodule(object: object) -> TypeGuard[ModuleType]: ...
+def isclass(object: object) -> TypeGuard[Type[Any]]: ...
+def ismethod(object: object) -> TypeGuard[MethodType]: ...
+def isfunction(object: object) -> TypeGuard[FunctionType]: ...
+
+if sys.version_info >= (3, 8):
+    def isgeneratorfunction(obj: object) -> bool: ...
+    def iscoroutinefunction(obj: object) -> bool: ...
+
+else:
+    def isgeneratorfunction(object: object) -> bool: ...
+    def iscoroutinefunction(object: object) -> bool: ...
+
+def isgenerator(object: object) -> TypeGuard[GeneratorType[Any, Any, Any]]: ...
+def iscoroutine(object: object) -> TypeGuard[CoroutineType[Any, Any, Any]]: ...
+def isawaitable(object: object) -> TypeGuard[Awaitable[Any]]: ...
+
+if sys.version_info >= (3, 8):
+    def isasyncgenfunction(obj: object) -> bool: ...
+
+else:
+    def isasyncgenfunction(object: object) -> bool: ...
+
+_T_cont = TypeVar("_T_cont", contravariant=True)
+_V_cont = TypeVar("_V_cont", contravariant=True)
+
+class _SupportsSet(Protocol[_T_cont, _V_cont]):
+    def __set__(self, __instance: _T_cont, __value: _V_cont) -> None: ...
+
+class _SupportsDelete(Protocol[_T_cont]):
+    def __delete__(self, __instance: _T_cont) -> None: ...
+
+def isasyncgen(object: object) -> TypeGuard[AsyncGeneratorType[Any, Any]]: ...
+def istraceback(object: object) -> TypeGuard[TracebackType]: ...
+def isframe(object: object) -> TypeGuard[FrameType]: ...
+def iscode(object: object) -> TypeGuard[CodeType]: ...
+def isbuiltin(object: object) -> TypeGuard[BuiltinFunctionType]: ...
+
+if sys.version_info < (3, 7):
+    def isroutine(
+        object: object,
+    ) -> TypeGuard[FunctionType | LambdaType | MethodType | BuiltinFunctionType | BuiltinMethodType]: ...
+    def ismethoddescriptor(object: object) -> bool: ...
+    def ismemberdescriptor(object: object) -> bool: ...
+
+else:
+    def isroutine(
+        object: object,
+    ) -> TypeGuard[
+        FunctionType
+        | LambdaType
+        | MethodType
+        | BuiltinFunctionType
+        | BuiltinMethodType
+        | WrapperDescriptorType
+        | MethodDescriptorType
+        | ClassMethodDescriptorType
+    ]: ...
+    def ismethoddescriptor(object: object) -> TypeGuard[MethodDescriptorType]: ...
+    def ismemberdescriptor(object: object) -> TypeGuard[MemberDescriptorType]: ...
+
+def isabstract(object: object) -> bool: ...
+def isgetsetdescriptor(object: object) -> TypeGuard[GetSetDescriptorType]: ...
+def isdatadescriptor(object: object) -> TypeGuard[_SupportsSet[Any, Any] | _SupportsDelete[Any]]: ...
+
+#
+# Retrieving source code
+#
+_SourceObjectType = Union[ModuleType, Type[Any], MethodType, FunctionType, TracebackType, FrameType, CodeType, Callable[..., Any]]
+
+def findsource(object: _SourceObjectType) -> tuple[list[str], int]: ...
+def getabsfile(object: _SourceObjectType, _filename: str | None = ...) -> str: ...
+def getblock(lines: Sequence[str]) -> Sequence[str]: ...
+def getdoc(object: object) -> str | None: ...
+def getcomments(object: object) -> str | None: ...
+def getfile(object: _SourceObjectType) -> str: ...
+def getmodule(object: object, _filename: str | None = ...) -> ModuleType | None: ...
+def getsourcefile(object: _SourceObjectType) -> str | None: ...
+def getsourcelines(object: _SourceObjectType) -> tuple[list[str], int]: ...
+def getsource(object: _SourceObjectType) -> str: ...
+def cleandoc(doc: str) -> str: ...
+def indentsize(line: str) -> int: ...
+
+#
+# Introspecting callables with the Signature object
+#
+if sys.version_info >= (3, 10):
+    def signature(
+        obj: Callable[..., Any],
+        *,
+        follow_wrapped: bool = ...,
+        globals: Mapping[str, Any] | None = ...,
+        locals: Mapping[str, Any] | None = ...,
+        eval_str: bool = ...,
+    ) -> Signature: ...
+
+else:
+    def signature(obj: Callable[..., Any], *, follow_wrapped: bool = ...) -> Signature: ...
+
+class _void: ...
+class _empty: ...
+
+class Signature:
+    def __init__(
+        self, parameters: Sequence[Parameter] | None = ..., *, return_annotation: Any = ..., __validate_parameters__: bool = ...
+    ) -> None: ...
+    empty = _empty
+    @property
+    def parameters(self) -> types.MappingProxyType[str, Parameter]: ...
+    # TODO: can we be more specific here?
+    @property
+    def return_annotation(self) -> Any: ...
+    def bind(self, *args: Any, **kwargs: Any) -> BoundArguments: ...
+    def bind_partial(self, *args: Any, **kwargs: Any) -> BoundArguments: ...
+    def replace(
+        self: Self, *, parameters: Sequence[Parameter] | Type[_void] | None = ..., return_annotation: Any = ...
+    ) -> Self: ...
+    if sys.version_info >= (3, 10):
+        @classmethod
+        def from_callable(
+            cls,
+            obj: Callable[..., Any],
+            *,
+            follow_wrapped: bool = ...,
+            globals: Mapping[str, Any] | None = ...,
+            locals: Mapping[str, Any] | None = ...,
+            eval_str: bool = ...,
+        ) -> Signature: ...
+    else:
+        @classmethod
+        def from_callable(cls, obj: Callable[..., Any], *, follow_wrapped: bool = ...) -> Signature: ...
+
+if sys.version_info >= (3, 10):
+    def get_annotations(
+        obj: Callable[..., Any] | Type[Any] | ModuleType,
+        *,
+        globals: Mapping[str, Any] | None = ...,
+        locals: Mapping[str, Any] | None = ...,
+        eval_str: bool = ...,
+    ) -> dict[str, Any]: ...
+
+# The name is the same as the enum's name in CPython
+class _ParameterKind(enum.IntEnum):
+    POSITIONAL_ONLY: int
+    POSITIONAL_OR_KEYWORD: int
+    VAR_POSITIONAL: int
+    KEYWORD_ONLY: int
+    VAR_KEYWORD: int
+
+    if sys.version_info >= (3, 8):
+        description: str
+
+class Parameter:
+    def __init__(self, name: str, kind: _ParameterKind, *, default: Any = ..., annotation: Any = ...) -> None: ...
+    empty = _empty
+    name: str
+    default: Any
+    annotation: Any
+
+    kind: _ParameterKind
+    POSITIONAL_ONLY: ClassVar[Literal[_ParameterKind.POSITIONAL_ONLY]]
+    POSITIONAL_OR_KEYWORD: ClassVar[Literal[_ParameterKind.POSITIONAL_OR_KEYWORD]]
+    VAR_POSITIONAL: ClassVar[Literal[_ParameterKind.VAR_POSITIONAL]]
+    KEYWORD_ONLY: ClassVar[Literal[_ParameterKind.KEYWORD_ONLY]]
+    VAR_KEYWORD: ClassVar[Literal[_ParameterKind.VAR_KEYWORD]]
+    def replace(
+        self: Self,
+        *,
+        name: str | Type[_void] = ...,
+        kind: _ParameterKind | Type[_void] = ...,
+        default: Any = ...,
+        annotation: Any = ...,
+    ) -> Self: ...
+
+class BoundArguments:
+    arguments: OrderedDict[str, Any]
+    args: Tuple[Any, ...]
+    kwargs: dict[str, Any]
+    signature: Signature
+    def __init__(self, signature: Signature, arguments: OrderedDict[str, Any]) -> None: ...
+    def apply_defaults(self) -> None: ...
+
+#
+# Classes and functions
+#
+
+# TODO: The actual return type should be list[_ClassTreeItem] but mypy doesn't
+# seem to be supporting this at the moment:
+# _ClassTreeItem = list[_ClassTreeItem] | Tuple[type, Tuple[type, ...]]
+def getclasstree(classes: list[type], unique: bool = ...) -> list[Any]: ...
+def walktree(classes: list[type], children: dict[Type[Any], list[type]], parent: Type[Any] | None) -> list[Any]: ...
+
+class ArgSpec(NamedTuple):
+    args: list[str]
+    varargs: str | None
+    keywords: str | None
+    defaults: Tuple[Any, ...]
+
+class Arguments(NamedTuple):
+    args: list[str]
+    varargs: str | None
+    varkw: str | None
+
+def getargs(co: CodeType) -> Arguments: ...
+def getargspec(func: object) -> ArgSpec: ...
+
+class FullArgSpec(NamedTuple):
+    args: list[str]
+    varargs: str | None
+    varkw: str | None
+    defaults: Tuple[Any, ...] | None
+    kwonlyargs: list[str]
+    kwonlydefaults: dict[str, Any] | None
+    annotations: dict[str, Any]
+
+def getfullargspec(func: object) -> FullArgSpec: ...
+
+class ArgInfo(NamedTuple):
+    args: list[str]
+    varargs: str | None
+    keywords: str | None
+    locals: dict[str, Any]
+
+def getargvalues(frame: FrameType) -> ArgInfo: ...
+def formatannotation(annotation: object, base_module: str | None = ...) -> str: ...
+def formatannotationrelativeto(object: object) -> Callable[[object], str]: ...
+def formatargspec(
+    args: list[str],
+    varargs: str | None = ...,
+    varkw: str | None = ...,
+    defaults: Tuple[Any, ...] | None = ...,
+    kwonlyargs: Sequence[str] | None = ...,
+    kwonlydefaults: dict[str, Any] | None = ...,
+    annotations: dict[str, Any] = ...,
+    formatarg: Callable[[str], str] = ...,
+    formatvarargs: Callable[[str], str] = ...,
+    formatvarkw: Callable[[str], str] = ...,
+    formatvalue: Callable[[Any], str] = ...,
+    formatreturns: Callable[[Any], str] = ...,
+    formatannotation: Callable[[Any], str] = ...,
+) -> str: ...
+def formatargvalues(
+    args: list[str],
+    varargs: str | None,
+    varkw: str | None,
+    locals: dict[str, Any] | None,
+    formatarg: Callable[[str], str] | None = ...,
+    formatvarargs: Callable[[str], str] | None = ...,
+    formatvarkw: Callable[[str], str] | None = ...,
+    formatvalue: Callable[[Any], str] | None = ...,
+) -> str: ...
+def getmro(cls: type) -> Tuple[type, ...]: ...
+def getcallargs(__func: Callable[..., Any], *args: Any, **kwds: Any) -> dict[str, Any]: ...
+
+class ClosureVars(NamedTuple):
+    nonlocals: Mapping[str, Any]
+    globals: Mapping[str, Any]
+    builtins: Mapping[str, Any]
+    unbound: set[str]
+
+def getclosurevars(func: Callable[..., Any]) -> ClosureVars: ...
+def unwrap(func: Callable[..., Any], *, stop: Callable[[Any], Any] | None = ...) -> Any: ...
+
+#
+# The interpreter stack
+#
+
+class Traceback(NamedTuple):
+    filename: str
+    lineno: int
+    function: str
+    code_context: list[str] | None
+    index: int | None  # type: ignore
+
+class FrameInfo(NamedTuple):
+    frame: FrameType
+    filename: str
+    lineno: int
+    function: str
+    code_context: list[str] | None
+    index: int | None  # type: ignore
+
+def getframeinfo(frame: FrameType | TracebackType, context: int = ...) -> Traceback: ...
+def getouterframes(frame: Any, context: int = ...) -> list[FrameInfo]: ...
+def getinnerframes(tb: TracebackType, context: int = ...) -> list[FrameInfo]: ...
+def getlineno(frame: FrameType) -> int: ...
+def currentframe() -> FrameType | None: ...
+def stack(context: int = ...) -> list[FrameInfo]: ...
+def trace(context: int = ...) -> list[FrameInfo]: ...
+
+#
+# Fetching attributes statically
+#
+
+def getattr_static(obj: object, attr: str, default: Any | None = ...) -> Any: ...
+
+#
+# Current State of Generators and Coroutines
+#
+
+# TODO In the next two blocks of code, can we be more specific regarding the
+# type of the "enums"?
+
+GEN_CREATED: str
+GEN_RUNNING: str
+GEN_SUSPENDED: str
+GEN_CLOSED: str
+
+def getgeneratorstate(generator: Generator[Any, Any, Any]) -> str: ...
+
+CORO_CREATED: str
+CORO_RUNNING: str
+CORO_SUSPENDED: str
+CORO_CLOSED: str
+# TODO can we be more specific than "object"?
+def getcoroutinestate(coroutine: object) -> str: ...
+def getgeneratorlocals(generator: Generator[Any, Any, Any]) -> dict[str, Any]: ...
+
+# TODO can we be more specific than "object"?
+def getcoroutinelocals(coroutine: object) -> dict[str, Any]: ...
+
+# Create private type alias to avoid conflict with symbol of same
+# name created in Attribute class.
+_Object = object
+
+class Attribute(NamedTuple):
+    name: str
+    kind: str
+    defining_class: type
+    object: _Object
+
+def classify_class_attrs(cls: type) -> list[Attribute]: ...
+
+if sys.version_info >= (3, 9):
+    class ClassFoundException(Exception): ...