| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 |
- from collections.abc import Callable, Iterable
- from typing import Any, Final, NamedTuple
- from typing_extensions import ParamSpec, TypeVar
- from numpy._typing import _SupportsArrayFunc
- _T = TypeVar("_T")
- _Tss = ParamSpec("_Tss")
- _FuncT = TypeVar("_FuncT", bound=Callable[..., object])
- ###
- ARRAY_FUNCTIONS: set[Callable[..., Any]] = ...
- array_function_like_doc: Final[str] = ...
- class ArgSpec(NamedTuple):
- args: list[str]
- varargs: str | None
- keywords: str | None
- defaults: tuple[Any, ...]
- def get_array_function_like_doc(public_api: Callable[..., Any], docstring_template: str = "") -> str: ...
- def finalize_array_function_like(public_api: _FuncT) -> _FuncT: ...
- #
- def verify_matching_signatures(
- implementation: Callable[_Tss, object],
- dispatcher: Callable[_Tss, Iterable[_SupportsArrayFunc]],
- ) -> None: ...
- # NOTE: This actually returns a `_ArrayFunctionDispatcher` callable wrapper object, with
- # the original wrapped callable stored in the `._implementation` attribute. It checks
- # for any `__array_function__` of the values of specific arguments that the dispatcher
- # specifies. Since the dispatcher only returns an iterable of passed array-like args,
- # this overridable behaviour is impossible to annotate.
- def array_function_dispatch(
- dispatcher: Callable[_Tss, Iterable[_SupportsArrayFunc]] | None = None,
- module: str | None = None,
- verify: bool = True,
- docs_from_dispatcher: bool = False,
- ) -> Callable[[_FuncT], _FuncT]: ...
- #
- def array_function_from_dispatcher(
- implementation: Callable[_Tss, _T],
- module: str | None = None,
- verify: bool = True,
- docs_from_dispatcher: bool = True,
- ) -> Callable[[Callable[_Tss, Iterable[_SupportsArrayFunc]]], Callable[_Tss, _T]]: ...
|