| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942 |
- """A module with private type-check-only `numpy.ufunc` subclasses.
- The signatures of the ufuncs are too varied to reasonably type
- with a single class. So instead, `ufunc` has been expanded into
- four private subclasses, one for each combination of
- `~ufunc.nin` and `~ufunc.nout`.
- """
- from typing import (
- Any,
- Generic,
- Literal,
- NoReturn,
- Protocol,
- SupportsIndex,
- TypeAlias,
- TypedDict,
- TypeVar,
- overload,
- type_check_only,
- )
- from typing_extensions import LiteralString, Unpack
- import numpy as np
- from numpy import _CastingKind, _OrderKACF, ufunc
- from numpy.typing import NDArray
- from ._array_like import ArrayLike, _ArrayLikeBool_co, _ArrayLikeInt_co
- from ._dtype_like import DTypeLike
- from ._scalars import _ScalarLike_co
- from ._shape import _ShapeLike
- _T = TypeVar("_T")
- _2Tuple: TypeAlias = tuple[_T, _T]
- _3Tuple: TypeAlias = tuple[_T, _T, _T]
- _4Tuple: TypeAlias = tuple[_T, _T, _T, _T]
- _2PTuple: TypeAlias = tuple[_T, _T, Unpack[tuple[_T, ...]]]
- _3PTuple: TypeAlias = tuple[_T, _T, _T, Unpack[tuple[_T, ...]]]
- _4PTuple: TypeAlias = tuple[_T, _T, _T, _T, Unpack[tuple[_T, ...]]]
- _NTypes = TypeVar("_NTypes", bound=int, covariant=True)
- _IDType = TypeVar("_IDType", covariant=True)
- _NameType = TypeVar("_NameType", bound=LiteralString, covariant=True)
- _Signature = TypeVar("_Signature", bound=LiteralString, covariant=True)
- _NIn = TypeVar("_NIn", bound=int, covariant=True)
- _NOut = TypeVar("_NOut", bound=int, covariant=True)
- _ReturnType_co = TypeVar("_ReturnType_co", covariant=True)
- _ArrayType = TypeVar("_ArrayType", bound=np.ndarray[Any, Any])
- @type_check_only
- class _SupportsArrayUFunc(Protocol):
- def __array_ufunc__(
- self,
- ufunc: ufunc,
- method: Literal["__call__", "reduce", "reduceat", "accumulate", "outer", "at"],
- *inputs: Any,
- **kwargs: Any,
- ) -> Any: ...
- @type_check_only
- class _UFunc3Kwargs(TypedDict, total=False):
- where: _ArrayLikeBool_co | None
- casting: _CastingKind
- order: _OrderKACF
- subok: bool
- signature: _3Tuple[str | None] | str | None
- # NOTE: `reduce`, `accumulate`, `reduceat` and `outer` raise a ValueError for
- # ufuncs that don't accept two input arguments and return one output argument.
- # In such cases the respective methods return `NoReturn`
- # NOTE: Similarly, `at` won't be defined for ufuncs that return
- # multiple outputs; in such cases `at` is typed to return `NoReturn`
- # NOTE: If 2 output types are returned then `out` must be a
- # 2-tuple of arrays. Otherwise `None` or a plain array are also acceptable
- # pyright: reportIncompatibleMethodOverride=false
- @type_check_only
- class _UFunc_Nin1_Nout1(ufunc, Generic[_NameType, _NTypes, _IDType]): # type: ignore[misc]
- @property
- def __name__(self) -> _NameType: ...
- @property
- def __qualname__(self) -> _NameType: ...
- @property
- def ntypes(self) -> _NTypes: ...
- @property
- def identity(self) -> _IDType: ...
- @property
- def nin(self) -> Literal[1]: ...
- @property
- def nout(self) -> Literal[1]: ...
- @property
- def nargs(self) -> Literal[2]: ...
- @property
- def signature(self) -> None: ...
- @overload
- def __call__(
- self,
- __x1: _ScalarLike_co,
- out: None = ...,
- *,
- where: None | _ArrayLikeBool_co = ...,
- casting: _CastingKind = ...,
- order: _OrderKACF = ...,
- dtype: DTypeLike = ...,
- subok: bool = ...,
- signature: str | _2Tuple[None | str] = ...,
- ) -> Any: ...
- @overload
- def __call__(
- self,
- __x1: ArrayLike,
- out: None | NDArray[Any] | tuple[NDArray[Any]] = ...,
- *,
- where: None | _ArrayLikeBool_co = ...,
- casting: _CastingKind = ...,
- order: _OrderKACF = ...,
- dtype: DTypeLike = ...,
- subok: bool = ...,
- signature: str | _2Tuple[None | str] = ...,
- ) -> NDArray[Any]: ...
- @overload
- def __call__(
- self,
- __x1: _SupportsArrayUFunc,
- out: None | NDArray[Any] | tuple[NDArray[Any]] = ...,
- *,
- where: None | _ArrayLikeBool_co = ...,
- casting: _CastingKind = ...,
- order: _OrderKACF = ...,
- dtype: DTypeLike = ...,
- subok: bool = ...,
- signature: str | _2Tuple[None | str] = ...,
- ) -> Any: ...
- def at(
- self,
- a: _SupportsArrayUFunc,
- indices: _ArrayLikeInt_co,
- /,
- ) -> None: ...
- def reduce(self, *args, **kwargs) -> NoReturn: ...
- def accumulate(self, *args, **kwargs) -> NoReturn: ...
- def reduceat(self, *args, **kwargs) -> NoReturn: ...
- def outer(self, *args, **kwargs) -> NoReturn: ...
- @type_check_only
- class _UFunc_Nin2_Nout1(ufunc, Generic[_NameType, _NTypes, _IDType]): # type: ignore[misc]
- @property
- def __name__(self) -> _NameType: ...
- @property
- def __qualname__(self) -> _NameType: ...
- @property
- def ntypes(self) -> _NTypes: ...
- @property
- def identity(self) -> _IDType: ...
- @property
- def nin(self) -> Literal[2]: ...
- @property
- def nout(self) -> Literal[1]: ...
- @property
- def nargs(self) -> Literal[3]: ...
- @property
- def signature(self) -> None: ...
- @overload # (scalar, scalar) -> scalar
- def __call__(
- self,
- x1: _ScalarLike_co,
- x2: _ScalarLike_co,
- /,
- out: None = None,
- *,
- dtype: DTypeLike | None = None,
- **kwds: Unpack[_UFunc3Kwargs],
- ) -> Any: ...
- @overload # (array-like, array) -> array
- def __call__(
- self,
- x1: ArrayLike,
- x2: NDArray[np.generic],
- /,
- out: NDArray[np.generic] | tuple[NDArray[np.generic]] | None = None,
- *,
- dtype: DTypeLike | None = None,
- **kwds: Unpack[_UFunc3Kwargs],
- ) -> NDArray[Any]: ...
- @overload # (array, array-like) -> array
- def __call__(
- self,
- x1: NDArray[np.generic],
- x2: ArrayLike,
- /,
- out: NDArray[np.generic] | tuple[NDArray[np.generic]] | None = None,
- *,
- dtype: DTypeLike | None = None,
- **kwds: Unpack[_UFunc3Kwargs],
- ) -> NDArray[Any]: ...
- @overload # (array-like, array-like, out=array) -> array
- def __call__(
- self,
- x1: ArrayLike,
- x2: ArrayLike,
- /,
- out: NDArray[np.generic] | tuple[NDArray[np.generic]],
- *,
- dtype: DTypeLike | None = None,
- **kwds: Unpack[_UFunc3Kwargs],
- ) -> NDArray[Any]: ...
- @overload # (array-like, array-like) -> array | scalar
- def __call__(
- self,
- x1: ArrayLike,
- x2: ArrayLike,
- /,
- out: NDArray[np.generic] | tuple[NDArray[np.generic]] | None = None,
- *,
- dtype: DTypeLike | None = None,
- **kwds: Unpack[_UFunc3Kwargs],
- ) -> NDArray[Any] | Any: ...
- def at(
- self,
- a: NDArray[Any],
- indices: _ArrayLikeInt_co,
- b: ArrayLike,
- /,
- ) -> None: ...
- def reduce(
- self,
- array: ArrayLike,
- axis: None | _ShapeLike = ...,
- dtype: DTypeLike = ...,
- out: None | NDArray[Any] = ...,
- keepdims: bool = ...,
- initial: Any = ...,
- where: _ArrayLikeBool_co = ...,
- ) -> Any: ...
- def accumulate(
- self,
- array: ArrayLike,
- axis: SupportsIndex = ...,
- dtype: DTypeLike = ...,
- out: None | NDArray[Any] = ...,
- ) -> NDArray[Any]: ...
- def reduceat(
- self,
- array: ArrayLike,
- indices: _ArrayLikeInt_co,
- axis: SupportsIndex = ...,
- dtype: DTypeLike = ...,
- out: None | NDArray[Any] = ...,
- ) -> NDArray[Any]: ...
- @overload # (scalar, scalar) -> scalar
- def outer(
- self,
- A: _ScalarLike_co,
- B: _ScalarLike_co,
- /,
- *,
- out: None = None,
- dtype: DTypeLike | None = None,
- **kwds: Unpack[_UFunc3Kwargs],
- ) -> Any: ...
- @overload # (array-like, array) -> array
- def outer(
- self,
- A: ArrayLike,
- B: NDArray[np.generic],
- /,
- *,
- out: NDArray[np.generic] | tuple[NDArray[np.generic]] | None = None,
- dtype: DTypeLike | None = None,
- **kwds: Unpack[_UFunc3Kwargs],
- ) -> NDArray[Any]: ...
- @overload # (array, array-like) -> array
- def outer(
- self,
- A: NDArray[np.generic],
- B: ArrayLike,
- /,
- *,
- out: NDArray[np.generic] | tuple[NDArray[np.generic]] | None = None,
- dtype: DTypeLike | None = None,
- **kwds: Unpack[_UFunc3Kwargs],
- ) -> NDArray[Any]: ...
- @overload # (array-like, array-like, out=array) -> array
- def outer(
- self,
- A: ArrayLike,
- B: ArrayLike,
- /,
- *,
- out: NDArray[np.generic] | tuple[NDArray[np.generic]],
- dtype: DTypeLike | None = None,
- **kwds: Unpack[_UFunc3Kwargs],
- ) -> NDArray[Any]: ...
- @overload # (array-like, array-like) -> array | scalar
- def outer(
- self,
- A: ArrayLike,
- B: ArrayLike,
- /,
- *,
- out: NDArray[np.generic] | tuple[NDArray[np.generic]] | None = None,
- dtype: DTypeLike | None = None,
- **kwds: Unpack[_UFunc3Kwargs],
- ) -> NDArray[Any] | Any: ...
- @type_check_only
- class _UFunc_Nin1_Nout2(ufunc, Generic[_NameType, _NTypes, _IDType]): # type: ignore[misc]
- @property
- def __name__(self) -> _NameType: ...
- @property
- def __qualname__(self) -> _NameType: ...
- @property
- def ntypes(self) -> _NTypes: ...
- @property
- def identity(self) -> _IDType: ...
- @property
- def nin(self) -> Literal[1]: ...
- @property
- def nout(self) -> Literal[2]: ...
- @property
- def nargs(self) -> Literal[3]: ...
- @property
- def signature(self) -> None: ...
- @overload
- def __call__(
- self,
- __x1: _ScalarLike_co,
- __out1: None = ...,
- __out2: None = ...,
- *,
- where: None | _ArrayLikeBool_co = ...,
- casting: _CastingKind = ...,
- order: _OrderKACF = ...,
- dtype: DTypeLike = ...,
- subok: bool = ...,
- signature: str | _3Tuple[None | str] = ...,
- ) -> _2Tuple[Any]: ...
- @overload
- def __call__(
- self,
- __x1: ArrayLike,
- __out1: None | NDArray[Any] = ...,
- __out2: None | NDArray[Any] = ...,
- *,
- out: _2Tuple[NDArray[Any]] = ...,
- where: None | _ArrayLikeBool_co = ...,
- casting: _CastingKind = ...,
- order: _OrderKACF = ...,
- dtype: DTypeLike = ...,
- subok: bool = ...,
- signature: str | _3Tuple[None | str] = ...,
- ) -> _2Tuple[NDArray[Any]]: ...
- @overload
- def __call__(
- self,
- __x1: _SupportsArrayUFunc,
- __out1: None | NDArray[Any] = ...,
- __out2: None | NDArray[Any] = ...,
- *,
- out: _2Tuple[NDArray[Any]] = ...,
- where: None | _ArrayLikeBool_co = ...,
- casting: _CastingKind = ...,
- order: _OrderKACF = ...,
- dtype: DTypeLike = ...,
- subok: bool = ...,
- signature: str | _3Tuple[None | str] = ...,
- ) -> _2Tuple[Any]: ...
- def at(self, *args, **kwargs) -> NoReturn: ...
- def reduce(self, *args, **kwargs) -> NoReturn: ...
- def accumulate(self, *args, **kwargs) -> NoReturn: ...
- def reduceat(self, *args, **kwargs) -> NoReturn: ...
- def outer(self, *args, **kwargs) -> NoReturn: ...
- @type_check_only
- class _UFunc_Nin2_Nout2(ufunc, Generic[_NameType, _NTypes, _IDType]): # type: ignore[misc]
- @property
- def __name__(self) -> _NameType: ...
- @property
- def __qualname__(self) -> _NameType: ...
- @property
- def ntypes(self) -> _NTypes: ...
- @property
- def identity(self) -> _IDType: ...
- @property
- def nin(self) -> Literal[2]: ...
- @property
- def nout(self) -> Literal[2]: ...
- @property
- def nargs(self) -> Literal[4]: ...
- @property
- def signature(self) -> None: ...
- @overload
- def __call__(
- self,
- __x1: _ScalarLike_co,
- __x2: _ScalarLike_co,
- __out1: None = ...,
- __out2: None = ...,
- *,
- where: None | _ArrayLikeBool_co = ...,
- casting: _CastingKind = ...,
- order: _OrderKACF = ...,
- dtype: DTypeLike = ...,
- subok: bool = ...,
- signature: str | _4Tuple[None | str] = ...,
- ) -> _2Tuple[Any]: ...
- @overload
- def __call__(
- self,
- __x1: ArrayLike,
- __x2: ArrayLike,
- __out1: None | NDArray[Any] = ...,
- __out2: None | NDArray[Any] = ...,
- *,
- out: _2Tuple[NDArray[Any]] = ...,
- where: None | _ArrayLikeBool_co = ...,
- casting: _CastingKind = ...,
- order: _OrderKACF = ...,
- dtype: DTypeLike = ...,
- subok: bool = ...,
- signature: str | _4Tuple[None | str] = ...,
- ) -> _2Tuple[NDArray[Any]]: ...
- def at(self, *args, **kwargs) -> NoReturn: ...
- def reduce(self, *args, **kwargs) -> NoReturn: ...
- def accumulate(self, *args, **kwargs) -> NoReturn: ...
- def reduceat(self, *args, **kwargs) -> NoReturn: ...
- def outer(self, *args, **kwargs) -> NoReturn: ...
- @type_check_only
- class _GUFunc_Nin2_Nout1(ufunc, Generic[_NameType, _NTypes, _IDType, _Signature]): # type: ignore[misc]
- @property
- def __name__(self) -> _NameType: ...
- @property
- def __qualname__(self) -> _NameType: ...
- @property
- def ntypes(self) -> _NTypes: ...
- @property
- def identity(self) -> _IDType: ...
- @property
- def nin(self) -> Literal[2]: ...
- @property
- def nout(self) -> Literal[1]: ...
- @property
- def nargs(self) -> Literal[3]: ...
- @property
- def signature(self) -> _Signature: ...
- # Scalar for 1D array-likes; ndarray otherwise
- @overload
- def __call__(
- self,
- __x1: ArrayLike,
- __x2: ArrayLike,
- out: None = ...,
- *,
- casting: _CastingKind = ...,
- order: _OrderKACF = ...,
- dtype: DTypeLike = ...,
- subok: bool = ...,
- signature: str | _3Tuple[None | str] = ...,
- axes: list[_2Tuple[SupportsIndex]] = ...,
- ) -> Any: ...
- @overload
- def __call__(
- self,
- __x1: ArrayLike,
- __x2: ArrayLike,
- out: NDArray[Any] | tuple[NDArray[Any]],
- *,
- casting: _CastingKind = ...,
- order: _OrderKACF = ...,
- dtype: DTypeLike = ...,
- subok: bool = ...,
- signature: str | _3Tuple[None | str] = ...,
- axes: list[_2Tuple[SupportsIndex]] = ...,
- ) -> NDArray[Any]: ...
- def at(self, *args, **kwargs) -> NoReturn: ...
- def reduce(self, *args, **kwargs) -> NoReturn: ...
- def accumulate(self, *args, **kwargs) -> NoReturn: ...
- def reduceat(self, *args, **kwargs) -> NoReturn: ...
- def outer(self, *args, **kwargs) -> NoReturn: ...
- @type_check_only
- class _PyFunc_Kwargs_Nargs2(TypedDict, total=False):
- where: None | _ArrayLikeBool_co
- casting: _CastingKind
- order: _OrderKACF
- dtype: DTypeLike
- subok: bool
- signature: str | tuple[DTypeLike, DTypeLike]
- @type_check_only
- class _PyFunc_Kwargs_Nargs3(TypedDict, total=False):
- where: None | _ArrayLikeBool_co
- casting: _CastingKind
- order: _OrderKACF
- dtype: DTypeLike
- subok: bool
- signature: str | tuple[DTypeLike, DTypeLike, DTypeLike]
- @type_check_only
- class _PyFunc_Kwargs_Nargs3P(TypedDict, total=False):
- where: None | _ArrayLikeBool_co
- casting: _CastingKind
- order: _OrderKACF
- dtype: DTypeLike
- subok: bool
- signature: str | _3PTuple[DTypeLike]
- @type_check_only
- class _PyFunc_Kwargs_Nargs4P(TypedDict, total=False):
- where: None | _ArrayLikeBool_co
- casting: _CastingKind
- order: _OrderKACF
- dtype: DTypeLike
- subok: bool
- signature: str | _4PTuple[DTypeLike]
- @type_check_only
- class _PyFunc_Nin1_Nout1(ufunc, Generic[_ReturnType_co, _IDType]): # type: ignore[misc]
- @property
- def identity(self) -> _IDType: ...
- @property
- def nin(self) -> Literal[1]: ...
- @property
- def nout(self) -> Literal[1]: ...
- @property
- def nargs(self) -> Literal[2]: ...
- @property
- def ntypes(self) -> Literal[1]: ...
- @property
- def signature(self) -> None: ...
- @overload
- def __call__(
- self,
- x1: _ScalarLike_co,
- /,
- out: None = ...,
- **kwargs: Unpack[_PyFunc_Kwargs_Nargs2],
- ) -> _ReturnType_co: ...
- @overload
- def __call__(
- self,
- x1: ArrayLike,
- /,
- out: None = ...,
- **kwargs: Unpack[_PyFunc_Kwargs_Nargs2],
- ) -> _ReturnType_co | NDArray[np.object_]: ...
- @overload
- def __call__(
- self,
- x1: ArrayLike,
- /,
- out: _ArrayType | tuple[_ArrayType],
- **kwargs: Unpack[_PyFunc_Kwargs_Nargs2],
- ) -> _ArrayType: ...
- @overload
- def __call__(
- self,
- x1: _SupportsArrayUFunc,
- /,
- out: None | NDArray[Any] | tuple[NDArray[Any]] = ...,
- **kwargs: Unpack[_PyFunc_Kwargs_Nargs2],
- ) -> Any: ...
- def at(self, a: _SupportsArrayUFunc, ixs: _ArrayLikeInt_co, /) -> None: ...
- def reduce(self, /, *args: Any, **kwargs: Any) -> NoReturn: ...
- def accumulate(self, /, *args: Any, **kwargs: Any) -> NoReturn: ...
- def reduceat(self, /, *args: Any, **kwargs: Any) -> NoReturn: ...
- def outer(self, /, *args: Any, **kwargs: Any) -> NoReturn: ...
- @type_check_only
- class _PyFunc_Nin2_Nout1(ufunc, Generic[_ReturnType_co, _IDType]): # type: ignore[misc]
- @property
- def identity(self) -> _IDType: ...
- @property
- def nin(self) -> Literal[2]: ...
- @property
- def nout(self) -> Literal[1]: ...
- @property
- def nargs(self) -> Literal[3]: ...
- @property
- def ntypes(self) -> Literal[1]: ...
- @property
- def signature(self) -> None: ...
- @overload
- def __call__(
- self,
- x1: _ScalarLike_co,
- x2: _ScalarLike_co,
- /,
- out: None = ...,
- **kwargs: Unpack[_PyFunc_Kwargs_Nargs3],
- ) -> _ReturnType_co: ...
- @overload
- def __call__(
- self,
- x1: ArrayLike,
- x2: ArrayLike,
- /,
- out: None = ...,
- **kwargs: Unpack[_PyFunc_Kwargs_Nargs3],
- ) -> _ReturnType_co | NDArray[np.object_]: ...
- @overload
- def __call__(
- self,
- x1: ArrayLike,
- x2: ArrayLike,
- /,
- out: _ArrayType | tuple[_ArrayType],
- **kwargs: Unpack[_PyFunc_Kwargs_Nargs3],
- ) -> _ArrayType: ...
- @overload
- def __call__(
- self,
- x1: _SupportsArrayUFunc,
- x2: _SupportsArrayUFunc | ArrayLike,
- /,
- out: None | NDArray[Any] | tuple[NDArray[Any]] = ...,
- **kwargs: Unpack[_PyFunc_Kwargs_Nargs3],
- ) -> Any: ...
- @overload
- def __call__(
- self,
- x1: ArrayLike,
- x2: _SupportsArrayUFunc,
- /,
- out: None | NDArray[Any] | tuple[NDArray[Any]] = ...,
- **kwargs: Unpack[_PyFunc_Kwargs_Nargs3],
- ) -> Any: ...
- def at(self, a: _SupportsArrayUFunc, ixs: _ArrayLikeInt_co, b: ArrayLike, /) -> None: ...
- @overload
- def reduce(
- self,
- array: ArrayLike,
- axis: None | _ShapeLike,
- dtype: DTypeLike,
- out: _ArrayType,
- /,
- keepdims: bool = ...,
- initial: _ScalarLike_co = ...,
- where: _ArrayLikeBool_co = ...,
- ) -> _ArrayType: ...
- @overload
- def reduce(
- self,
- /,
- array: ArrayLike,
- axis: None | _ShapeLike = ...,
- dtype: DTypeLike = ...,
- *,
- out: _ArrayType | tuple[_ArrayType],
- keepdims: bool = ...,
- initial: _ScalarLike_co = ...,
- where: _ArrayLikeBool_co = ...,
- ) -> _ArrayType: ...
- @overload
- def reduce(
- self,
- /,
- array: ArrayLike,
- axis: None | _ShapeLike = ...,
- dtype: DTypeLike = ...,
- out: None = ...,
- *,
- keepdims: Literal[True],
- initial: _ScalarLike_co = ...,
- where: _ArrayLikeBool_co = ...,
- ) -> NDArray[np.object_]: ...
- @overload
- def reduce(
- self,
- /,
- array: ArrayLike,
- axis: None | _ShapeLike = ...,
- dtype: DTypeLike = ...,
- out: None = ...,
- keepdims: bool = ...,
- initial: _ScalarLike_co = ...,
- where: _ArrayLikeBool_co = ...,
- ) -> _ReturnType_co | NDArray[np.object_]: ...
- @overload
- def reduceat(
- self,
- array: ArrayLike,
- indices: _ArrayLikeInt_co,
- axis: SupportsIndex,
- dtype: DTypeLike,
- out: _ArrayType,
- /,
- ) -> _ArrayType: ...
- @overload
- def reduceat(
- self,
- /,
- array: ArrayLike,
- indices: _ArrayLikeInt_co,
- axis: SupportsIndex = ...,
- dtype: DTypeLike = ...,
- *,
- out: _ArrayType | tuple[_ArrayType],
- ) -> _ArrayType: ...
- @overload
- def reduceat(
- self,
- /,
- array: ArrayLike,
- indices: _ArrayLikeInt_co,
- axis: SupportsIndex = ...,
- dtype: DTypeLike = ...,
- out: None = ...,
- ) -> NDArray[np.object_]: ...
- @overload
- def reduceat(
- self,
- /,
- array: _SupportsArrayUFunc,
- indices: _ArrayLikeInt_co,
- axis: SupportsIndex = ...,
- dtype: DTypeLike = ...,
- out: None | NDArray[Any] | tuple[NDArray[Any]] = ...,
- ) -> Any: ...
- @overload
- def accumulate(
- self,
- array: ArrayLike,
- axis: SupportsIndex,
- dtype: DTypeLike,
- out: _ArrayType,
- /,
- ) -> _ArrayType: ...
- @overload
- def accumulate(
- self,
- array: ArrayLike,
- axis: SupportsIndex = ...,
- dtype: DTypeLike = ...,
- *,
- out: _ArrayType | tuple[_ArrayType],
- ) -> _ArrayType: ...
- @overload
- def accumulate(
- self,
- /,
- array: ArrayLike,
- axis: SupportsIndex = ...,
- dtype: DTypeLike = ...,
- out: None = ...,
- ) -> NDArray[np.object_]: ...
- @overload
- def outer(
- self,
- A: _ScalarLike_co,
- B: _ScalarLike_co,
- /, *,
- out: None = ...,
- **kwargs: Unpack[_PyFunc_Kwargs_Nargs3],
- ) -> _ReturnType_co: ...
- @overload
- def outer(
- self,
- A: ArrayLike,
- B: ArrayLike,
- /, *,
- out: None = ...,
- **kwargs: Unpack[_PyFunc_Kwargs_Nargs3],
- ) -> _ReturnType_co | NDArray[np.object_]: ...
- @overload
- def outer(
- self,
- A: ArrayLike,
- B: ArrayLike,
- /, *,
- out: _ArrayType,
- **kwargs: Unpack[_PyFunc_Kwargs_Nargs3],
- ) -> _ArrayType: ...
- @overload
- def outer(
- self,
- A: _SupportsArrayUFunc,
- B: _SupportsArrayUFunc | ArrayLike,
- /, *,
- out: None = ...,
- **kwargs: Unpack[_PyFunc_Kwargs_Nargs3],
- ) -> Any: ...
- @overload
- def outer(
- self,
- A: _ScalarLike_co,
- B: _SupportsArrayUFunc | ArrayLike,
- /, *,
- out: None = ...,
- **kwargs: Unpack[_PyFunc_Kwargs_Nargs3],
- ) -> Any: ...
- @type_check_only
- class _PyFunc_Nin3P_Nout1(ufunc, Generic[_ReturnType_co, _IDType, _NIn]): # type: ignore[misc]
- @property
- def identity(self) -> _IDType: ...
- @property
- def nin(self) -> _NIn: ...
- @property
- def nout(self) -> Literal[1]: ...
- @property
- def ntypes(self) -> Literal[1]: ...
- @property
- def signature(self) -> None: ...
- @overload
- def __call__(
- self,
- x1: _ScalarLike_co,
- x2: _ScalarLike_co,
- x3: _ScalarLike_co,
- /,
- *xs: _ScalarLike_co,
- out: None = ...,
- **kwargs: Unpack[_PyFunc_Kwargs_Nargs4P],
- ) -> _ReturnType_co: ...
- @overload
- def __call__(
- self,
- x1: ArrayLike,
- x2: ArrayLike,
- x3: ArrayLike,
- /,
- *xs: ArrayLike,
- out: None = ...,
- **kwargs: Unpack[_PyFunc_Kwargs_Nargs4P],
- ) -> _ReturnType_co | NDArray[np.object_]: ...
- @overload
- def __call__(
- self,
- x1: ArrayLike,
- x2: ArrayLike,
- x3: ArrayLike,
- /,
- *xs: ArrayLike,
- out: _ArrayType | tuple[_ArrayType],
- **kwargs: Unpack[_PyFunc_Kwargs_Nargs4P],
- ) -> _ArrayType: ...
- @overload
- def __call__(
- self,
- x1: _SupportsArrayUFunc | ArrayLike,
- x2: _SupportsArrayUFunc | ArrayLike,
- x3: _SupportsArrayUFunc | ArrayLike,
- /,
- *xs: _SupportsArrayUFunc | ArrayLike,
- out: None | NDArray[Any] | tuple[NDArray[Any]] = ...,
- **kwargs: Unpack[_PyFunc_Kwargs_Nargs4P],
- ) -> Any: ...
- def at(self, /, *args: Any, **kwargs: Any) -> NoReturn: ...
- def reduce(self, /, *args: Any, **kwargs: Any) -> NoReturn: ...
- def accumulate(self, /, *args: Any, **kwargs: Any) -> NoReturn: ...
- def reduceat(self, /, *args: Any, **kwargs: Any) -> NoReturn: ...
- def outer(self, /, *args: Any, **kwargs: Any) -> NoReturn: ...
- @type_check_only
- class _PyFunc_Nin1P_Nout2P(ufunc, Generic[_ReturnType_co, _IDType, _NIn, _NOut]): # type: ignore[misc]
- @property
- def identity(self) -> _IDType: ...
- @property
- def nin(self) -> _NIn: ...
- @property
- def nout(self) -> _NOut: ...
- @property
- def ntypes(self) -> Literal[1]: ...
- @property
- def signature(self) -> None: ...
- @overload
- def __call__(
- self,
- x1: _ScalarLike_co,
- /,
- *xs: _ScalarLike_co,
- out: None = ...,
- **kwargs: Unpack[_PyFunc_Kwargs_Nargs3P],
- ) -> _2PTuple[_ReturnType_co]: ...
- @overload
- def __call__(
- self,
- x1: ArrayLike,
- /,
- *xs: ArrayLike,
- out: None = ...,
- **kwargs: Unpack[_PyFunc_Kwargs_Nargs3P],
- ) -> _2PTuple[_ReturnType_co | NDArray[np.object_]]: ...
- @overload
- def __call__(
- self,
- x1: ArrayLike,
- /,
- *xs: ArrayLike,
- out: _2PTuple[_ArrayType],
- **kwargs: Unpack[_PyFunc_Kwargs_Nargs3P],
- ) -> _2PTuple[_ArrayType]: ...
- @overload
- def __call__(
- self,
- x1: _SupportsArrayUFunc | ArrayLike,
- /,
- *xs: _SupportsArrayUFunc | ArrayLike,
- out: None | _2PTuple[NDArray[Any]] = ...,
- **kwargs: Unpack[_PyFunc_Kwargs_Nargs3P],
- ) -> Any: ...
- def at(self, /, *args: Any, **kwargs: Any) -> NoReturn: ...
- def reduce(self, /, *args: Any, **kwargs: Any) -> NoReturn: ...
- def accumulate(self, /, *args: Any, **kwargs: Any) -> NoReturn: ...
- def reduceat(self, /, *args: Any, **kwargs: Any) -> NoReturn: ...
- def outer(self, /, *args: Any, **kwargs: Any) -> NoReturn: ...
|