diff options
author | iantra <iantrasolari@gmail.com> | 2022-09-01 15:30:45 +0200 |
---|---|---|
committer | Charles Harris <charlesr.harris@gmail.com> | 2022-09-07 07:25:30 -0600 |
commit | 5a5b6504368e35b0fbd399bad79c7385e4e6d10a (patch) | |
tree | da6962944d731686b50c1b041b1b892342ed2ee0 | |
parent | e18dd98ca72441f3eead9c974550ccd75b2247dd (diff) | |
download | numpy-5a5b6504368e35b0fbd399bad79c7385e4e6d10a.tar.gz |
BUG: change overload order to play nice with pyright.
Pyright just chooses the first matching type whenever there is ambiguity in type resolution, which leads to NoReturn for the cross function in certain situations. Other overloads were changed to match. See ticket #22146
-rw-r--r-- | numpy/core/numeric.pyi | 54 |
1 files changed, 27 insertions, 27 deletions
diff --git a/numpy/core/numeric.pyi b/numpy/core/numeric.pyi index d09144f90..ed2b03ab4 100644 --- a/numpy/core/numeric.pyi +++ b/numpy/core/numeric.pyi @@ -257,6 +257,12 @@ def flatnonzero(a: ArrayLike) -> NDArray[intp]: ... @overload def correlate( + a: _ArrayLikeObject_co, + v: _ArrayLikeObject_co, + mode: _CorrelateMode = ..., +) -> NDArray[object_]: ... +@overload +def correlate( a: _ArrayLikeBool_co, v: _ArrayLikeBool_co, mode: _CorrelateMode = ..., @@ -291,13 +297,13 @@ def correlate( v: _ArrayLikeTD64_co, mode: _CorrelateMode = ..., ) -> NDArray[timedelta64]: ... + @overload -def correlate( +def convolve( a: _ArrayLikeObject_co, v: _ArrayLikeObject_co, mode: _CorrelateMode = ..., ) -> NDArray[object_]: ... - @overload def convolve( a: _ArrayLikeBool_co, @@ -334,13 +340,13 @@ def convolve( v: _ArrayLikeTD64_co, mode: _CorrelateMode = ..., ) -> NDArray[timedelta64]: ... + @overload -def convolve( +def outer( a: _ArrayLikeObject_co, - v: _ArrayLikeObject_co, - mode: _CorrelateMode = ..., + b: _ArrayLikeObject_co, + out: None = ..., ) -> NDArray[object_]: ... - @overload def outer( a: _ArrayLikeBool_co, @@ -379,12 +385,6 @@ def outer( ) -> NDArray[timedelta64]: ... @overload def outer( - a: _ArrayLikeObject_co, - b: _ArrayLikeObject_co, - out: None = ..., -) -> NDArray[object_]: ... -@overload -def outer( a: _ArrayLikeComplex_co | _ArrayLikeTD64_co | _ArrayLikeObject_co, b: _ArrayLikeComplex_co | _ArrayLikeTD64_co | _ArrayLikeObject_co, out: _ArrayType, @@ -392,6 +392,12 @@ def outer( @overload def tensordot( + a: _ArrayLikeObject_co, + b: _ArrayLikeObject_co, + axes: int | tuple[_ShapeLike, _ShapeLike] = ..., +) -> NDArray[object_]: ... +@overload +def tensordot( a: _ArrayLikeBool_co, b: _ArrayLikeBool_co, axes: int | tuple[_ShapeLike, _ShapeLike] = ..., @@ -426,12 +432,6 @@ def tensordot( b: _ArrayLikeTD64_co, axes: int | tuple[_ShapeLike, _ShapeLike] = ..., ) -> NDArray[timedelta64]: ... -@overload -def tensordot( - a: _ArrayLikeObject_co, - b: _ArrayLikeObject_co, - axes: int | tuple[_ShapeLike, _ShapeLike] = ..., -) -> NDArray[object_]: ... @overload def roll( @@ -460,6 +460,15 @@ def moveaxis( @overload def cross( + a: _ArrayLikeObject_co, + b: _ArrayLikeObject_co, + axisa: int = ..., + axisb: int = ..., + axisc: int = ..., + axis: None | int = ..., +) -> NDArray[object_]: ... +@overload +def cross( a: _ArrayLikeBool_co, b: _ArrayLikeBool_co, axisa: int = ..., @@ -503,15 +512,6 @@ def cross( axisc: int = ..., axis: None | int = ..., ) -> NDArray[complexfloating[Any, Any]]: ... -@overload -def cross( - a: _ArrayLikeObject_co, - b: _ArrayLikeObject_co, - axisa: int = ..., - axisb: int = ..., - axisc: int = ..., - axis: None | int = ..., -) -> NDArray[object_]: ... @overload def indices( |