summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCharles Harris <charlesr.harris@gmail.com>2021-05-05 17:03:23 -0600
committerGitHub <noreply@github.com>2021-05-05 17:03:23 -0600
commitc40cef5848777bf32ccab0f39afa16c0826a959e (patch)
tree927a46fb1d7b739fec26266a7902584913fc4eb9
parent55a566817967a1696abb24ebdda7595f092bd68f (diff)
parent3b3dbdda2de4d6193dd4ab299067f20fb47515f2 (diff)
downloadnumpy-c40cef5848777bf32ccab0f39afa16c0826a959e.tar.gz
Merge pull request #18915 from BvB93/unsafe
MAINT: Remove unsafe unions and ABCs from return-annotations
-rw-r--r--numpy/__init__.pyi206
-rw-r--r--numpy/core/fromnumeric.pyi350
-rw-r--r--numpy/core/function_base.pyi6
-rw-r--r--numpy/core/numeric.pyi72
-rw-r--r--numpy/typing/_callable.py6
-rw-r--r--numpy/typing/tests/data/fail/fromnumeric.py108
-rw-r--r--numpy/typing/tests/data/reveal/arithmetic.py28
-rw-r--r--numpy/typing/tests/data/reveal/array_constructors.py2
-rw-r--r--numpy/typing/tests/data/reveal/fromnumeric.py270
-rw-r--r--numpy/typing/tests/data/reveal/ndarray_misc.py90
-rw-r--r--numpy/typing/tests/data/reveal/numeric.py10
11 files changed, 533 insertions, 615 deletions
diff --git a/numpy/__init__.pyi b/numpy/__init__.pyi
index 9435c27f3..5146a11d5 100644
--- a/numpy/__init__.pyi
+++ b/numpy/__init__.pyi
@@ -1048,14 +1048,21 @@ class _ArrayOrScalarCommon:
def __array_wrap__(array, context=...): ...
def __setstate__(self, __state): ...
# a `bool_` is returned when `keepdims=True` and `self` is a 0d array
+
@overload
def all(
- self, axis: None = ..., out: None = ..., keepdims: Literal[False] = ...
+ self,
+ axis: None = ...,
+ out: None = ...,
+ keepdims: Literal[False] = ...,
) -> bool_: ...
@overload
def all(
- self, axis: Optional[_ShapeLike] = ..., out: None = ..., keepdims: bool = ...
- ) -> Union[bool_, ndarray]: ...
+ self,
+ axis: Optional[_ShapeLike] = ...,
+ out: None = ...,
+ keepdims: bool = ...,
+ ) -> Any: ...
@overload
def all(
self,
@@ -1063,14 +1070,21 @@ class _ArrayOrScalarCommon:
out: _NdArraySubClass = ...,
keepdims: bool = ...,
) -> _NdArraySubClass: ...
+
@overload
def any(
- self, axis: None = ..., out: None = ..., keepdims: Literal[False] = ...
+ self,
+ axis: None = ...,
+ out: None = ...,
+ keepdims: Literal[False] = ...,
) -> bool_: ...
@overload
def any(
- self, axis: Optional[_ShapeLike] = ..., out: None = ..., keepdims: bool = ...
- ) -> Union[bool_, ndarray]: ...
+ self,
+ axis: Optional[_ShapeLike] = ...,
+ out: None = ...,
+ keepdims: bool = ...,
+ ) -> Any: ...
@overload
def any(
self,
@@ -1078,40 +1092,67 @@ class _ArrayOrScalarCommon:
out: _NdArraySubClass = ...,
keepdims: bool = ...,
) -> _NdArraySubClass: ...
+
@overload
- def argmax(self, axis: None = ..., out: None = ...) -> signedinteger: ...
+ def argmax(
+ self,
+ axis: None = ...,
+ out: None = ...,
+ ) -> signedinteger[Any]: ...
@overload
def argmax(
- self, axis: _ShapeLike = ..., out: None = ...
- ) -> Union[signedinteger, ndarray]: ...
+ self,
+ axis: _ShapeLike = ...,
+ out: None = ...,
+ ) -> Any: ...
@overload
def argmax(
- self, axis: Optional[_ShapeLike] = ..., out: _NdArraySubClass = ...
+ self,
+ axis: Optional[_ShapeLike] = ...,
+ out: _NdArraySubClass = ...,
) -> _NdArraySubClass: ...
+
@overload
- def argmin(self, axis: None = ..., out: None = ...) -> signedinteger: ...
+ def argmin(
+ self,
+ axis: None = ...,
+ out: None = ...,
+ ) -> signedinteger[Any]: ...
@overload
def argmin(
- self, axis: _ShapeLike = ..., out: None = ...
- ) -> Union[signedinteger, ndarray]: ...
+ self,
+ axis: _ShapeLike = ...,
+ out: None = ...,
+ ) -> Any: ...
@overload
def argmin(
- self, axis: Optional[_ShapeLike] = ..., out: _NdArraySubClass = ...
+ self,
+ axis: Optional[_ShapeLike] = ...,
+ out: _NdArraySubClass = ...,
) -> _NdArraySubClass: ...
+
def argsort(
self,
axis: Optional[SupportsIndex] = ...,
kind: Optional[_SortKind] = ...,
order: Union[None, str, Sequence[str]] = ...,
) -> ndarray: ...
+
@overload
def choose(
- self, choices: ArrayLike, out: None = ..., mode: _ModeKind = ...,
+ self,
+ choices: ArrayLike,
+ out: None = ...,
+ mode: _ModeKind = ...,
) -> ndarray: ...
@overload
def choose(
- self, choices: ArrayLike, out: _NdArraySubClass = ..., mode: _ModeKind = ...,
+ self,
+ choices: ArrayLike,
+ out: _NdArraySubClass = ...,
+ mode: _ModeKind = ...,
) -> _NdArraySubClass: ...
+
@overload
def clip(
self,
@@ -1119,7 +1160,7 @@ class _ArrayOrScalarCommon:
max: Optional[ArrayLike] = ...,
out: None = ...,
**kwargs: Any,
- ) -> Union[number, ndarray]: ...
+ ) -> Any: ...
@overload
def clip(
self,
@@ -1127,7 +1168,7 @@ class _ArrayOrScalarCommon:
max: ArrayLike = ...,
out: None = ...,
**kwargs: Any,
- ) -> Union[number, ndarray]: ...
+ ) -> Any: ...
@overload
def clip(
self,
@@ -1144,6 +1185,7 @@ class _ArrayOrScalarCommon:
out: _NdArraySubClass = ...,
**kwargs: Any,
) -> _NdArraySubClass: ...
+
@overload
def compress(
self,
@@ -1158,8 +1200,11 @@ class _ArrayOrScalarCommon:
axis: Optional[SupportsIndex] = ...,
out: _NdArraySubClass = ...,
) -> _NdArraySubClass: ...
+
def conj(self: _ArraySelf) -> _ArraySelf: ...
+
def conjugate(self: _ArraySelf) -> _ArraySelf: ...
+
@overload
def cumprod(
self,
@@ -1174,6 +1219,7 @@ class _ArrayOrScalarCommon:
dtype: DTypeLike = ...,
out: _NdArraySubClass = ...,
) -> _NdArraySubClass: ...
+
@overload
def cumsum(
self,
@@ -1188,15 +1234,7 @@ class _ArrayOrScalarCommon:
dtype: DTypeLike = ...,
out: _NdArraySubClass = ...,
) -> _NdArraySubClass: ...
- @overload
- def max(
- self,
- axis: None = ...,
- out: None = ...,
- keepdims: Literal[False] = ...,
- initial: _NumberLike = ...,
- where: _ArrayLikeBool = ...,
- ) -> number: ...
+
@overload
def max(
self,
@@ -1205,7 +1243,7 @@ class _ArrayOrScalarCommon:
keepdims: bool = ...,
initial: _NumberLike = ...,
where: _ArrayLikeBool = ...,
- ) -> Union[number, ndarray]: ...
+ ) -> Any: ...
@overload
def max(
self,
@@ -1215,14 +1253,7 @@ class _ArrayOrScalarCommon:
initial: _NumberLike = ...,
where: _ArrayLikeBool = ...,
) -> _NdArraySubClass: ...
- @overload
- def mean(
- self,
- axis: None = ...,
- dtype: DTypeLike = ...,
- out: None = ...,
- keepdims: Literal[False] = ...,
- ) -> number: ...
+
@overload
def mean(
self,
@@ -1230,7 +1261,7 @@ class _ArrayOrScalarCommon:
dtype: DTypeLike = ...,
out: None = ...,
keepdims: bool = ...,
- ) -> Union[number, ndarray]: ...
+ ) -> Any: ...
@overload
def mean(
self,
@@ -1239,15 +1270,7 @@ class _ArrayOrScalarCommon:
out: _NdArraySubClass = ...,
keepdims: bool = ...,
) -> _NdArraySubClass: ...
- @overload
- def min(
- self,
- axis: None = ...,
- out: None = ...,
- keepdims: Literal[False] = ...,
- initial: _NumberLike = ...,
- where: _ArrayLikeBool = ...,
- ) -> number: ...
+
@overload
def min(
self,
@@ -1256,7 +1279,7 @@ class _ArrayOrScalarCommon:
keepdims: bool = ...,
initial: _NumberLike = ...,
where: _ArrayLikeBool = ...,
- ) -> Union[number, ndarray]: ...
+ ) -> Any: ...
@overload
def min(
self,
@@ -1266,17 +1289,12 @@ class _ArrayOrScalarCommon:
initial: _NumberLike = ...,
where: _ArrayLikeBool = ...,
) -> _NdArraySubClass: ...
- def newbyteorder(self: _ArraySelf, __new_order: _ByteOrder = ...) -> _ArraySelf: ...
- @overload
- def prod(
- self,
- axis: None = ...,
- dtype: DTypeLike = ...,
- out: None = ...,
- keepdims: Literal[False] = ...,
- initial: _NumberLike = ...,
- where: _ArrayLikeBool = ...,
- ) -> number: ...
+
+ def newbyteorder(
+ self: _ArraySelf,
+ __new_order: _ByteOrder = ...,
+ ) -> _ArraySelf: ...
+
@overload
def prod(
self,
@@ -1286,7 +1304,7 @@ class _ArrayOrScalarCommon:
keepdims: bool = ...,
initial: _NumberLike = ...,
where: _ArrayLikeBool = ...,
- ) -> Union[number, ndarray]: ...
+ ) -> Any: ...
@overload
def prod(
self,
@@ -1297,14 +1315,14 @@ class _ArrayOrScalarCommon:
initial: _NumberLike = ...,
where: _ArrayLikeBool = ...,
) -> _NdArraySubClass: ...
+
@overload
def ptp(
- self, axis: None = ..., out: None = ..., keepdims: Literal[False] = ...,
- ) -> number: ...
- @overload
- def ptp(
- self, axis: Optional[_ShapeLike] = ..., out: None = ..., keepdims: bool = ...,
- ) -> Union[number, ndarray]: ...
+ self,
+ axis: Optional[_ShapeLike] = ...,
+ out: None = ...,
+ keepdims: bool = ...,
+ ) -> Any: ...
@overload
def ptp(
self,
@@ -1312,26 +1330,26 @@ class _ArrayOrScalarCommon:
out: _NdArraySubClass = ...,
keepdims: bool = ...,
) -> _NdArraySubClass: ...
+
def repeat(
- self, repeats: _ArrayLikeIntOrBool, axis: Optional[SupportsIndex] = ...
+ self,
+ repeats: _ArrayLikeIntOrBool,
+ axis: Optional[SupportsIndex] = ...,
) -> ndarray: ...
+
@overload
def round(
- self: _ArraySelf, decimals: SupportsIndex = ..., out: None = ...
+ self: _ArraySelf,
+ decimals: SupportsIndex = ...,
+ out: None = ...,
) -> _ArraySelf: ...
@overload
def round(
- self, decimals: SupportsIndex = ..., out: _NdArraySubClass = ...
- ) -> _NdArraySubClass: ...
- @overload
- def std(
self,
- axis: None = ...,
- dtype: DTypeLike = ...,
- out: None = ...,
- ddof: int = ...,
- keepdims: Literal[False] = ...,
- ) -> number: ...
+ decimals: SupportsIndex = ...,
+ out: _NdArraySubClass = ...,
+ ) -> _NdArraySubClass: ...
+
@overload
def std(
self,
@@ -1340,7 +1358,7 @@ class _ArrayOrScalarCommon:
out: None = ...,
ddof: int = ...,
keepdims: bool = ...,
- ) -> Union[number, ndarray]: ...
+ ) -> Any: ...
@overload
def std(
self,
@@ -1350,16 +1368,7 @@ class _ArrayOrScalarCommon:
ddof: int = ...,
keepdims: bool = ...,
) -> _NdArraySubClass: ...
- @overload
- def sum(
- self,
- axis: None = ...,
- dtype: DTypeLike = ...,
- out: None = ...,
- keepdims: Literal[False] = ...,
- initial: _NumberLike = ...,
- where: _ArrayLikeBool = ...,
- ) -> number: ...
+
@overload
def sum(
self,
@@ -1369,7 +1378,7 @@ class _ArrayOrScalarCommon:
keepdims: bool = ...,
initial: _NumberLike = ...,
where: _ArrayLikeBool = ...,
- ) -> Union[number, ndarray]: ...
+ ) -> Any: ...
@overload
def sum(
self,
@@ -1380,6 +1389,7 @@ class _ArrayOrScalarCommon:
initial: _NumberLike = ...,
where: _ArrayLikeBool = ...,
) -> _NdArraySubClass: ...
+
@overload
def take(
self,
@@ -1387,7 +1397,7 @@ class _ArrayOrScalarCommon:
axis: Optional[SupportsIndex] = ...,
out: None = ...,
mode: _ModeKind = ...,
- ) -> generic: ...
+ ) -> Any: ...
@overload
def take(
self,
@@ -1404,15 +1414,7 @@ class _ArrayOrScalarCommon:
out: _NdArraySubClass = ...,
mode: _ModeKind = ...,
) -> _NdArraySubClass: ...
- @overload
- def var(
- self,
- axis: None = ...,
- dtype: DTypeLike = ...,
- out: None = ...,
- ddof: int = ...,
- keepdims: Literal[False] = ...,
- ) -> number: ...
+
@overload
def var(
self,
@@ -1421,7 +1423,7 @@ class _ArrayOrScalarCommon:
out: None = ...,
ddof: int = ...,
keepdims: bool = ...,
- ) -> Union[number, ndarray]: ...
+ ) -> Any: ...
@overload
def var(
self,
@@ -1512,7 +1514,7 @@ class ndarray(_ArrayOrScalarCommon, Iterable, Sized, Container):
axis2: SupportsIndex = ...,
) -> _ArraySelf: ...
@overload
- def dot(self, b: ArrayLike, out: None = ...) -> Union[number, ndarray]: ...
+ def dot(self, b: ArrayLike, out: None = ...) -> Any: ...
@overload
def dot(self, b: ArrayLike, out: _NdArraySubClass = ...) -> _NdArraySubClass: ...
# `nonzero()` is deprecated for 0d arrays/generics
@@ -1552,7 +1554,7 @@ class ndarray(_ArrayOrScalarCommon, Iterable, Sized, Container):
axis2: SupportsIndex = ...,
dtype: DTypeLike = ...,
out: None = ...,
- ) -> Union[number, ndarray]: ...
+ ) -> Any: ...
@overload
def trace(
self, # >= 2D array
diff --git a/numpy/core/fromnumeric.pyi b/numpy/core/fromnumeric.pyi
index 66eb3bfb8..f61d9b7ae 100644
--- a/numpy/core/fromnumeric.pyi
+++ b/numpy/core/fromnumeric.pyi
@@ -4,8 +4,7 @@ from typing import Optional, Union, Sequence, Tuple, Any, overload, TypeVar
from numpy import (
ndarray,
- number,
- integer,
+ signedinteger,
bool_,
generic,
_OrderKACF,
@@ -22,8 +21,6 @@ from numpy.typing import (
ArrayLike,
_ShapeLike,
_Shape,
- _IntLike,
- _BoolLike,
_NumberLike,
)
@@ -42,80 +39,58 @@ _ScalarBuiltin = Union[str, bytes, dt.date, dt.timedelta, bool, int, float, comp
_Scalar = Union[_ScalarBuiltin, _ScalarNumpy]
# Integers and booleans can generally be used interchangeably
-_ScalarIntOrBool = TypeVar("_ScalarIntOrBool", bound=Union[integer, bool_])
_ScalarGeneric = TypeVar("_ScalarGeneric", bound=generic)
-_ScalarGenericDT = TypeVar(
- "_ScalarGenericDT", bound=Union[dt.datetime, dt.timedelta, generic]
-)
-
-_Number = TypeVar("_Number", bound=number)
# The signature of take() follows a common theme with its overloads:
# 1. A generic comes in; the same generic comes out
# 2. A scalar comes in; a generic comes out
# 3. An array-like object comes in; some keyword ensures that a generic comes out
# 4. An array-like object comes in; an ndarray or generic comes out
-@overload
-def take(
- a: _ScalarGenericDT,
- indices: int,
- axis: Optional[int] = ...,
- out: Optional[ndarray] = ...,
- mode: _ModeKind = ...,
-) -> _ScalarGenericDT: ...
-@overload
-def take(
- a: _Scalar,
- indices: int,
- axis: Optional[int] = ...,
- out: Optional[ndarray] = ...,
- mode: _ModeKind = ...,
-) -> _ScalarNumpy: ...
-@overload
-def take(
- a: ArrayLike,
- indices: int,
- axis: Optional[int] = ...,
- out: Optional[ndarray] = ...,
- mode: _ModeKind = ...,
-) -> _ScalarNumpy: ...
-@overload
def take(
a: ArrayLike,
indices: _ArrayLikeIntOrBool,
axis: Optional[int] = ...,
out: Optional[ndarray] = ...,
mode: _ModeKind = ...,
-) -> Union[_ScalarNumpy, ndarray]: ...
-def reshape(a: ArrayLike, newshape: _ShapeLike, order: _OrderACF = ...) -> ndarray: ...
-@overload
-def choose(
- a: _ScalarIntOrBool,
- choices: ArrayLike,
- out: Optional[ndarray] = ...,
- mode: _ModeKind = ...,
-) -> _ScalarIntOrBool: ...
-@overload
-def choose(
- a: Union[_IntLike, _BoolLike], choices: ArrayLike, out: Optional[ndarray] = ..., mode: _ModeKind = ...
-) -> Union[integer, bool_]: ...
-@overload
+) -> Any: ...
+
+def reshape(
+ a: ArrayLike,
+ newshape: _ShapeLike,
+ order: _OrderACF = ...,
+) -> ndarray: ...
+
def choose(
a: _ArrayLikeIntOrBool,
choices: ArrayLike,
out: Optional[ndarray] = ...,
mode: _ModeKind = ...,
-) -> ndarray: ...
+) -> Any: ...
+
def repeat(
- a: ArrayLike, repeats: _ArrayLikeIntOrBool, axis: Optional[int] = ...
+ a: ArrayLike,
+ repeats: _ArrayLikeIntOrBool,
+ axis: Optional[int] = ...,
) -> ndarray: ...
+
def put(
- a: ndarray, ind: _ArrayLikeIntOrBool, v: ArrayLike, mode: _ModeKind = ...
+ a: ndarray,
+ ind: _ArrayLikeIntOrBool,
+ v: ArrayLike,
+ mode: _ModeKind = ...,
) -> None: ...
-def swapaxes(a: ArrayLike, axis1: int, axis2: int) -> ndarray: ...
+
+def swapaxes(
+ a: ArrayLike,
+ axis1: int,
+ axis2: int,
+) -> ndarray: ...
+
def transpose(
- a: ArrayLike, axes: Union[None, Sequence[int], ndarray] = ...
+ a: ArrayLike,
+ axes: Union[None, Sequence[int], ndarray] = ...
) -> ndarray: ...
+
def partition(
a: ArrayLike,
kth: _ArrayLikeIntOrBool,
@@ -123,61 +98,62 @@ def partition(
kind: _PartitionKind = ...,
order: Union[None, str, Sequence[str]] = ...,
) -> ndarray: ...
-@overload
-def argpartition(
- a: generic,
- kth: _ArrayLikeIntOrBool,
- axis: Optional[int] = ...,
- kind: _PartitionKind = ...,
- order: Union[None, str, Sequence[str]] = ...,
-) -> integer: ...
-@overload
-def argpartition(
- a: _ScalarBuiltin,
- kth: _ArrayLikeIntOrBool,
- axis: Optional[int] = ...,
- kind: _PartitionKind = ...,
- order: Union[None, str, Sequence[str]] = ...,
-) -> ndarray: ...
-@overload
+
def argpartition(
a: ArrayLike,
kth: _ArrayLikeIntOrBool,
axis: Optional[int] = ...,
kind: _PartitionKind = ...,
order: Union[None, str, Sequence[str]] = ...,
-) -> ndarray: ...
+) -> Any: ...
+
def sort(
a: ArrayLike,
axis: Optional[int] = ...,
kind: Optional[_SortKind] = ...,
order: Union[None, str, Sequence[str]] = ...,
) -> ndarray: ...
+
def argsort(
a: ArrayLike,
axis: Optional[int] = ...,
kind: Optional[_SortKind] = ...,
order: Union[None, str, Sequence[str]] = ...,
) -> ndarray: ...
+
@overload
-def argmax(a: ArrayLike, axis: None = ..., out: Optional[ndarray] = ...) -> integer: ...
+def argmax(
+ a: ArrayLike,
+ axis: None = ...,
+ out: Optional[ndarray] = ...,
+) -> signedinteger[Any]: ...
@overload
def argmax(
- a: ArrayLike, axis: int = ..., out: Optional[ndarray] = ...
-) -> Union[integer, ndarray]: ...
+ a: ArrayLike,
+ axis: Optional[int] = ...,
+ out: Optional[ndarray] = ...,
+) -> Any: ...
+
@overload
-def argmin(a: ArrayLike, axis: None = ..., out: Optional[ndarray] = ...) -> integer: ...
+def argmin(
+ a: ArrayLike,
+ axis: None = ...,
+ out: Optional[ndarray] = ...,
+) -> signedinteger[Any]: ...
@overload
def argmin(
- a: ArrayLike, axis: int = ..., out: Optional[ndarray] = ...
-) -> Union[integer, ndarray]: ...
+ a: ArrayLike,
+ axis: Optional[int] = ...,
+ out: Optional[ndarray] = ...,
+) -> Any: ...
+
@overload
def searchsorted(
a: ArrayLike,
v: _Scalar,
side: _SortSide = ...,
sorter: Optional[_ArrayLikeIntOrBool] = ..., # 1D int array
-) -> integer: ...
+) -> signedinteger[Any]: ...
@overload
def searchsorted(
a: ArrayLike,
@@ -185,14 +161,30 @@ def searchsorted(
side: _SortSide = ...,
sorter: Optional[_ArrayLikeIntOrBool] = ..., # 1D int array
) -> ndarray: ...
-def resize(a: ArrayLike, new_shape: _ShapeLike) -> ndarray: ...
+
+def resize(
+ a: ArrayLike,
+ new_shape: _ShapeLike,
+) -> ndarray: ...
+
@overload
-def squeeze(a: _ScalarGeneric, axis: Optional[_ShapeLike] = ...) -> _ScalarGeneric: ...
+def squeeze(
+ a: _ScalarGeneric,
+ axis: Optional[_ShapeLike] = ...,
+) -> _ScalarGeneric: ...
@overload
-def squeeze(a: ArrayLike, axis: Optional[_ShapeLike] = ...) -> ndarray: ...
+def squeeze(
+ a: ArrayLike,
+ axis: Optional[_ShapeLike] = ...,
+) -> ndarray: ...
+
def diagonal(
- a: ArrayLike, offset: int = ..., axis1: int = ..., axis2: int = ... # >= 2D array
+ a: ArrayLike,
+ offset: int = ...,
+ axis1: int = ...,
+ axis2: int = ..., # >= 2D array
) -> ndarray: ...
+
def trace(
a: ArrayLike, # >= 2D array
offset: int = ...,
@@ -200,32 +192,21 @@ def trace(
axis2: int = ...,
dtype: DTypeLike = ...,
out: Optional[ndarray] = ...,
-) -> Union[number, ndarray]: ...
+) -> Any: ...
+
def ravel(a: ArrayLike, order: _OrderKACF = ...) -> ndarray: ...
+
def nonzero(a: ArrayLike) -> Tuple[ndarray, ...]: ...
+
def shape(a: ArrayLike) -> _Shape: ...
+
def compress(
condition: ArrayLike, # 1D bool array
a: ArrayLike,
axis: Optional[int] = ...,
out: Optional[ndarray] = ...,
) -> ndarray: ...
-@overload
-def clip(
- a: _Number,
- a_min: ArrayLike,
- a_max: Optional[ArrayLike],
- out: Optional[ndarray] = ...,
- **kwargs: Any,
-) -> _Number: ...
-@overload
-def clip(
- a: _Number,
- a_min: None,
- a_max: ArrayLike,
- out: Optional[ndarray] = ...,
- **kwargs: Any,
-) -> _Number: ...
+
@overload
def clip(
a: ArrayLike,
@@ -233,7 +214,7 @@ def clip(
a_max: Optional[ArrayLike],
out: Optional[ndarray] = ...,
**kwargs: Any,
-) -> Union[number, ndarray]: ...
+) -> Any: ...
@overload
def clip(
a: ArrayLike,
@@ -241,18 +222,8 @@ def clip(
a_max: ArrayLike,
out: Optional[ndarray] = ...,
**kwargs: Any,
-) -> Union[number, ndarray]: ...
-@overload
-def sum(
- a: _Number,
- axis: Optional[_ShapeLike] = ...,
- dtype: DTypeLike = ...,
- out: Optional[ndarray] = ...,
- keepdims: bool = ...,
- initial: _NumberLike = ...,
- where: _ArrayLikeBool = ...,
-) -> _Number: ...
-@overload
+) -> Any: ...
+
def sum(
a: ArrayLike,
axis: _ShapeLike = ...,
@@ -261,12 +232,13 @@ def sum(
keepdims: bool = ...,
initial: _NumberLike = ...,
where: _ArrayLikeBool = ...,
-) -> Union[number, ndarray]: ...
+) -> Any: ...
+
@overload
def all(
a: ArrayLike,
axis: None = ...,
- out: Optional[ndarray] = ...,
+ out: None = ...,
keepdims: Literal[False] = ...,
) -> bool_: ...
@overload
@@ -275,12 +247,13 @@ def all(
axis: Optional[_ShapeLike] = ...,
out: Optional[ndarray] = ...,
keepdims: bool = ...,
-) -> Union[bool_, ndarray]: ...
+) -> Any: ...
+
@overload
def any(
a: ArrayLike,
axis: None = ...,
- out: Optional[ndarray] = ...,
+ out: None = ...,
keepdims: Literal[False] = ...,
) -> bool_: ...
@overload
@@ -289,53 +262,22 @@ def any(
axis: Optional[_ShapeLike] = ...,
out: Optional[ndarray] = ...,
keepdims: bool = ...,
-) -> Union[bool_, ndarray]: ...
+) -> Any: ...
+
def cumsum(
a: ArrayLike,
axis: Optional[int] = ...,
dtype: DTypeLike = ...,
out: Optional[ndarray] = ...,
) -> ndarray: ...
-@overload
-def ptp(
- a: _Number,
- axis: Optional[_ShapeLike] = ...,
- out: Optional[ndarray] = ...,
- keepdims: bool = ...,
-) -> _Number: ...
-@overload
-def ptp(
- a: ArrayLike,
- axis: None = ...,
- out: Optional[ndarray] = ...,
- keepdims: Literal[False] = ...,
-) -> number: ...
-@overload
+
def ptp(
a: ArrayLike,
axis: Optional[_ShapeLike] = ...,
out: Optional[ndarray] = ...,
keepdims: bool = ...,
-) -> Union[number, ndarray]: ...
-@overload
-def amax(
- a: _Number,
- axis: Optional[_ShapeLike] = ...,
- out: Optional[ndarray] = ...,
- keepdims: bool = ...,
- initial: _NumberLike = ...,
- where: _ArrayLikeBool = ...,
-) -> _Number: ...
-@overload
-def amax(
- a: ArrayLike,
- axis: None = ...,
- out: Optional[ndarray] = ...,
- keepdims: Literal[False] = ...,
- initial: _NumberLike = ...,
- where: _ArrayLikeBool = ...,
-) -> number: ...
-@overload
+) -> Any: ...
+
def amax(
a: ArrayLike,
axis: Optional[_ShapeLike] = ...,
@@ -343,26 +285,8 @@ def amax(
keepdims: bool = ...,
initial: _NumberLike = ...,
where: _ArrayLikeBool = ...,
-) -> Union[number, ndarray]: ...
-@overload
-def amin(
- a: _Number,
- axis: Optional[_ShapeLike] = ...,
- out: Optional[ndarray] = ...,
- keepdims: bool = ...,
- initial: _NumberLike = ...,
- where: _ArrayLikeBool = ...,
-) -> _Number: ...
-@overload
-def amin(
- a: ArrayLike,
- axis: None = ...,
- out: Optional[ndarray] = ...,
- keepdims: Literal[False] = ...,
- initial: _NumberLike = ...,
- where: _ArrayLikeBool = ...,
-) -> number: ...
-@overload
+) -> Any: ...
+
def amin(
a: ArrayLike,
axis: Optional[_ShapeLike] = ...,
@@ -370,7 +294,7 @@ def amin(
keepdims: bool = ...,
initial: _NumberLike = ...,
where: _ArrayLikeBool = ...,
-) -> Union[number, ndarray]: ...
+) -> Any: ...
# TODO: `np.prod()``: For object arrays `initial` does not necessarily
# have to be a numerical scalar.
@@ -379,27 +303,6 @@ def amin(
# Note that the same situation holds for all wrappers around
# `np.ufunc.reduce`, e.g. `np.sum()` (`.__add__()`).
-@overload
-def prod(
- a: _Number,
- axis: Optional[_ShapeLike] = ...,
- dtype: DTypeLike = ...,
- out: None = ...,
- keepdims: bool = ...,
- initial: _NumberLike = ...,
- where: _ArrayLikeBool = ...,
-) -> _Number: ...
-@overload
-def prod(
- a: ArrayLike,
- axis: None = ...,
- dtype: DTypeLike = ...,
- out: None = ...,
- keepdims: Literal[False] = ...,
- initial: _NumberLike = ...,
- where: _ArrayLikeBool = ...,
-) -> number: ...
-@overload
def prod(
a: ArrayLike,
axis: Optional[_ShapeLike] = ...,
@@ -408,53 +311,33 @@ def prod(
keepdims: bool = ...,
initial: _NumberLike = ...,
where: _ArrayLikeBool = ...,
-) -> Union[number, ndarray]: ...
+) -> Any: ...
+
def cumprod(
a: ArrayLike,
axis: Optional[int] = ...,
dtype: DTypeLike = ...,
out: Optional[ndarray] = ...,
) -> ndarray: ...
+
def ndim(a: ArrayLike) -> int: ...
+
def size(a: ArrayLike, axis: Optional[int] = ...) -> int: ...
-@overload
-def around(
- a: _Number, decimals: int = ..., out: Optional[ndarray] = ...
-) -> _Number: ...
-@overload
-def around(
- a: _NumberLike, decimals: int = ..., out: Optional[ndarray] = ...
-) -> number: ...
-@overload
+
def around(
- a: ArrayLike, decimals: int = ..., out: Optional[ndarray] = ...
-) -> ndarray: ...
-@overload
-def mean(
a: ArrayLike,
- axis: None = ...,
- dtype: DTypeLike = ...,
- out: None = ...,
- keepdims: Literal[False] = ...,
-) -> number: ...
-@overload
+ decimals: int = ...,
+ out: Optional[ndarray] = ...,
+) -> Any: ...
+
def mean(
a: ArrayLike,
axis: Optional[_ShapeLike] = ...,
dtype: DTypeLike = ...,
out: Optional[ndarray] = ...,
keepdims: bool = ...,
-) -> Union[number, ndarray]: ...
-@overload
-def std(
- a: ArrayLike,
- axis: None = ...,
- dtype: DTypeLike = ...,
- out: None = ...,
- ddof: int = ...,
- keepdims: Literal[False] = ...,
-) -> number: ...
-@overload
+) -> Any: ...
+
def std(
a: ArrayLike,
axis: Optional[_ShapeLike] = ...,
@@ -462,17 +345,8 @@ def std(
out: Optional[ndarray] = ...,
ddof: int = ...,
keepdims: bool = ...,
-) -> Union[number, ndarray]: ...
-@overload
-def var(
- a: ArrayLike,
- axis: None = ...,
- dtype: DTypeLike = ...,
- out: None = ...,
- ddof: int = ...,
- keepdims: Literal[False] = ...,
-) -> number: ...
-@overload
+) -> Any: ...
+
def var(
a: ArrayLike,
axis: Optional[_ShapeLike] = ...,
@@ -480,4 +354,4 @@ def var(
out: Optional[ndarray] = ...,
ddof: int = ...,
keepdims: bool = ...,
-) -> Union[number, ndarray]: ...
+) -> Any: ...
diff --git a/numpy/core/function_base.pyi b/numpy/core/function_base.pyi
index 1490bed4a..573dc2193 100644
--- a/numpy/core/function_base.pyi
+++ b/numpy/core/function_base.pyi
@@ -1,7 +1,7 @@
import sys
from typing import overload, Tuple, Union, Sequence, Any
-from numpy import ndarray, inexact
+from numpy import ndarray
from numpy.typing import ArrayLike, DTypeLike, _SupportsArray, _NumberLike
if sys.version_info >= (3, 8):
@@ -36,7 +36,8 @@ def linspace(
retstep: Literal[True] = ...,
dtype: DTypeLike = ...,
axis: SupportsIndex = ...,
-) -> Tuple[ndarray, inexact]: ...
+) -> Tuple[ndarray, Any]: ...
+
def logspace(
start: _ArrayLikeNumber,
stop: _ArrayLikeNumber,
@@ -46,6 +47,7 @@ def logspace(
dtype: DTypeLike = ...,
axis: SupportsIndex = ...,
) -> ndarray: ...
+
def geomspace(
start: _ArrayLikeNumber,
stop: _ArrayLikeNumber,
diff --git a/numpy/core/numeric.pyi b/numpy/core/numeric.pyi
index d91cb31c2..6b9ef4b20 100644
--- a/numpy/core/numeric.pyi
+++ b/numpy/core/numeric.pyi
@@ -41,6 +41,7 @@ def zeros_like(
subok: bool = ...,
shape: Optional[_ShapeLike] = ...,
) -> ndarray: ...
+
def ones(
shape: _ShapeLike,
dtype: DTypeLike = ...,
@@ -48,6 +49,7 @@ def ones(
*,
like: ArrayLike = ...,
) -> ndarray: ...
+
@overload
def ones_like(
a: _ArrayType,
@@ -64,6 +66,7 @@ def ones_like(
subok: bool = ...,
shape: Optional[_ShapeLike] = ...,
) -> ndarray: ...
+
@overload
def empty_like(
a: _ArrayType,
@@ -80,6 +83,7 @@ def empty_like(
subok: bool = ...,
shape: Optional[_ShapeLike] = ...,
) -> ndarray: ...
+
def full(
shape: _ShapeLike,
fill_value: Any,
@@ -88,6 +92,7 @@ def full(
*,
like: ArrayLike = ...,
) -> ndarray: ...
+
@overload
def full_like(
a: _ArrayType,
@@ -106,39 +111,73 @@ def full_like(
subok: bool = ...,
shape: Optional[_ShapeLike] = ...,
) -> ndarray: ...
+
@overload
def count_nonzero(
- a: ArrayLike, axis: None = ..., *, keepdims: Literal[False] = ...
+ a: ArrayLike,
+ axis: None = ...,
+ *,
+ keepdims: Literal[False] = ...,
) -> int: ...
@overload
def count_nonzero(
- a: ArrayLike, axis: _ShapeLike = ..., *, keepdims: bool = ...
-) -> Union[signedinteger[Any], ndarray]: ... # TODO: np.intp
+ a: ArrayLike,
+ axis: _ShapeLike = ...,
+ *,
+ keepdims: bool = ...,
+) -> Any: ... # TODO: np.intp or ndarray[np.intp]
+
def isfortran(a: Union[ndarray, generic]) -> bool: ...
+
def argwhere(a: ArrayLike) -> ndarray: ...
+
def flatnonzero(a: ArrayLike) -> ndarray: ...
-def correlate(a: ArrayLike, v: ArrayLike, mode: _CorrelateMode = ...) -> ndarray: ...
-def convolve(a: ArrayLike, v: ArrayLike, mode: _CorrelateMode = ...) -> ndarray: ...
+
+def correlate(
+ a: ArrayLike,
+ v: ArrayLike,
+ mode: _CorrelateMode = ...,
+) -> ndarray: ...
+
+def convolve(
+ a: ArrayLike,
+ v: ArrayLike,
+ mode: _CorrelateMode = ...,
+) -> ndarray: ...
+
@overload
-def outer(a: ArrayLike, b: ArrayLike, out: None = ...) -> ndarray: ...
+def outer(
+ a: ArrayLike,
+ b: ArrayLike,
+ out: None = ...,
+) -> ndarray: ...
@overload
-def outer(a: ArrayLike, b: ArrayLike, out: _ArrayType = ...) -> _ArrayType: ...
+def outer(
+ a: ArrayLike,
+ b: ArrayLike,
+ out: _ArrayType = ...,
+) -> _ArrayType: ...
+
def tensordot(
a: ArrayLike,
b: ArrayLike,
axes: Union[int, Tuple[_ShapeLike, _ShapeLike]] = ...,
) -> ndarray: ...
+
def roll(
a: ArrayLike,
shift: _ShapeLike,
axis: Optional[_ShapeLike] = ...,
) -> ndarray: ...
+
def rollaxis(a: ndarray, axis: int, start: int = ...) -> ndarray: ...
+
def moveaxis(
a: ndarray,
source: _ShapeLike,
destination: _ShapeLike,
) -> ndarray: ...
+
def cross(
a: ArrayLike,
b: ArrayLike,
@@ -147,6 +186,7 @@ def cross(
axisc: int = ...,
axis: Optional[int] = ...,
) -> ndarray: ...
+
@overload
def indices(
dimensions: Sequence[int],
@@ -159,6 +199,7 @@ def indices(
dtype: DTypeLike = ...,
sparse: Literal[True] = ...,
) -> Tuple[ndarray, ...]: ...
+
def fromfunction(
function: Callable[..., _T],
shape: Sequence[int],
@@ -167,10 +208,20 @@ def fromfunction(
like: ArrayLike = ...,
**kwargs: Any,
) -> _T: ...
+
def isscalar(element: Any) -> bool: ...
+
def binary_repr(num: int, width: Optional[int] = ...) -> str: ...
+
def base_repr(number: int, base: int = ..., padding: int = ...) -> str: ...
-def identity(n: int, dtype: DTypeLike = ..., *, like: ArrayLike = ...) -> ndarray: ...
+
+def identity(
+ n: int,
+ dtype: DTypeLike = ...,
+ *,
+ like: ArrayLike = ...,
+) -> ndarray: ...
+
def allclose(
a: ArrayLike,
b: ArrayLike,
@@ -178,12 +229,15 @@ def allclose(
atol: float = ...,
equal_nan: bool = ...,
) -> bool: ...
+
def isclose(
a: ArrayLike,
b: ArrayLike,
rtol: float = ...,
atol: float = ...,
equal_nan: bool = ...,
-) -> Union[bool_, ndarray]: ...
+) -> Any: ...
+
def array_equal(a1: ArrayLike, a2: ArrayLike) -> bool: ...
+
def array_equiv(a1: ArrayLike, a2: ArrayLike) -> bool: ...
diff --git a/numpy/typing/_callable.py b/numpy/typing/_callable.py
index 91b7a4ec2..ad38028e1 100644
--- a/numpy/typing/_callable.py
+++ b/numpy/typing/_callable.py
@@ -156,7 +156,7 @@ if TYPE_CHECKING or HAVE_PROTOCOL:
@overload
def __call__(
self, __other: Union[int, signedinteger[Any]]
- ) -> Union[signedinteger[Any], float64]: ...
+ ) -> Any: ...
@overload
def __call__(self, __other: float) -> float64: ...
@overload
@@ -184,7 +184,7 @@ if TYPE_CHECKING or HAVE_PROTOCOL:
@overload
def __call__(
self, __other: Union[int, signedinteger[Any]]
- ) -> Union[signedinteger[Any], float64]: ...
+ ) -> Any: ...
@overload
def __call__(self, __other: float) -> float64: ...
@overload
@@ -198,7 +198,7 @@ if TYPE_CHECKING or HAVE_PROTOCOL:
@overload
def __call__(
self, __other: Union[int, signedinteger[Any]]
- ) -> Union[_2Tuple[signedinteger[Any]], _2Tuple[float64]]: ...
+ ) -> _2Tuple[Any]: ...
@overload
def __call__(self, __other: float) -> _2Tuple[float64]: ...
@overload
diff --git a/numpy/typing/tests/data/fail/fromnumeric.py b/numpy/typing/tests/data/fail/fromnumeric.py
index c9156895d..d8f7a5d69 100644
--- a/numpy/typing/tests/data/fail/fromnumeric.py
+++ b/numpy/typing/tests/data/fail/fromnumeric.py
@@ -7,17 +7,17 @@ A.setflags(write=False)
a = np.bool_(True)
-np.take(a, None) # E: No overload variant of "take" matches argument type
-np.take(a, axis=1.0) # E: No overload variant of "take" matches argument type
-np.take(A, out=1) # E: No overload variant of "take" matches argument type
-np.take(A, mode="bob") # E: No overload variant of "take" matches argument type
+np.take(a, None) # E: incompatible type
+np.take(a, axis=1.0) # E: incompatible type
+np.take(A, out=1) # E: incompatible type
+np.take(A, mode="bob") # E: incompatible type
np.reshape(a, None) # E: Argument 2 to "reshape" has incompatible type
np.reshape(A, 1, order="bob") # E: Argument "order" to "reshape" has incompatible type
-np.choose(a, None) # E: No overload variant of "choose" matches argument type
-np.choose(a, out=1.0) # E: No overload variant of "choose" matches argument type
-np.choose(A, mode="bob") # E: No overload variant of "choose" matches argument type
+np.choose(a, None) # E: incompatible type
+np.choose(a, out=1.0) # E: incompatible type
+np.choose(A, mode="bob") # E: incompatible type
np.repeat(a, None) # E: Argument 2 to "repeat" has incompatible type
np.repeat(A, 1, axis=1.0) # E: Argument "axis" to "repeat" has incompatible type
@@ -38,14 +38,14 @@ np.partition(
A, 0, order=range(5) # E: Argument "order" to "partition" has incompatible type
)
-np.argpartition( # E: No overload variant of "argpartition" matches argument type
- a, None
+np.argpartition(
+ a, None # E: incompatible type
)
-np.argpartition( # E: No overload variant of "argpartition" matches argument type
- a, 0, axis="bob"
+np.argpartition(
+ a, 0, axis="bob" # E: incompatible type
)
-np.argpartition( # E: No overload variant of "argpartition" matches argument type
- A, 0, kind="bob"
+np.argpartition(
+ A, 0, kind="bob" # E: incompatible type
)
np.argpartition(
A, 0, order=range(5) # E: Argument "order" to "argpartition" has incompatible type
@@ -93,62 +93,62 @@ np.compress(
np.clip(a, 1, 2, out=1) # E: No overload variant of "clip" matches argument type
np.clip(1, None, None) # E: No overload variant of "clip" matches argument type
-np.sum(a, axis=1.0) # E: No overload variant of "sum" matches argument type
-np.sum(a, keepdims=1.0) # E: No overload variant of "sum" matches argument type
-np.sum(a, initial=[1]) # E: No overload variant of "sum" matches argument type
+np.sum(a, axis=1.0) # E: incompatible type
+np.sum(a, keepdims=1.0) # E: incompatible type
+np.sum(a, initial=[1]) # E: incompatible type
-np.all(a, axis=1.0) # E: No overload variant of "all" matches argument type
-np.all(a, keepdims=1.0) # E: No overload variant of "all" matches argument type
-np.all(a, out=1.0) # E: No overload variant of "all" matches argument type
+np.all(a, axis=1.0) # E: No overload variant
+np.all(a, keepdims=1.0) # E: No overload variant
+np.all(a, out=1.0) # E: No overload variant
-np.any(a, axis=1.0) # E: No overload variant of "any" matches argument type
-np.any(a, keepdims=1.0) # E: No overload variant of "any" matches argument type
-np.any(a, out=1.0) # E: No overload variant of "any" matches argument type
+np.any(a, axis=1.0) # E: No overload variant
+np.any(a, keepdims=1.0) # E: No overload variant
+np.any(a, out=1.0) # E: No overload variant
-np.cumsum(a, axis=1.0) # E: Argument "axis" to "cumsum" has incompatible type
-np.cumsum(a, dtype=1.0) # E: Argument "dtype" to "cumsum" has incompatible type
-np.cumsum(a, out=1.0) # E: Argument "out" to "cumsum" has incompatible type
+np.cumsum(a, axis=1.0) # E: incompatible type
+np.cumsum(a, dtype=1.0) # E: incompatible type
+np.cumsum(a, out=1.0) # E: incompatible type
-np.ptp(a, axis=1.0) # E: No overload variant of "ptp" matches argument type
-np.ptp(a, keepdims=1.0) # E: No overload variant of "ptp" matches argument type
-np.ptp(a, out=1.0) # E: No overload variant of "ptp" matches argument type
+np.ptp(a, axis=1.0) # E: incompatible type
+np.ptp(a, keepdims=1.0) # E: incompatible type
+np.ptp(a, out=1.0) # E: incompatible type
-np.amax(a, axis=1.0) # E: No overload variant of "amax" matches argument type
-np.amax(a, keepdims=1.0) # E: No overload variant of "amax" matches argument type
-np.amax(a, out=1.0) # E: No overload variant of "amax" matches argument type
-np.amax(a, initial=[1.0]) # E: No overload variant of "amax" matches argument type
+np.amax(a, axis=1.0) # E: incompatible type
+np.amax(a, keepdims=1.0) # E: incompatible type
+np.amax(a, out=1.0) # E: incompatible type
+np.amax(a, initial=[1.0]) # E: incompatible type
np.amax(a, where=[1.0]) # E: List item 0 has incompatible type
-np.amin(a, axis=1.0) # E: No overload variant of "amin" matches argument type
-np.amin(a, keepdims=1.0) # E: No overload variant of "amin" matches argument type
-np.amin(a, out=1.0) # E: No overload variant of "amin" matches argument type
-np.amin(a, initial=[1.0]) # E: No overload variant of "amin" matches argument type
+np.amin(a, axis=1.0) # E: incompatible type
+np.amin(a, keepdims=1.0) # E: incompatible type
+np.amin(a, out=1.0) # E: incompatible type
+np.amin(a, initial=[1.0]) # E: incompatible type
np.amin(a, where=[1.0]) # E: List item 0 has incompatible type
-np.prod(a, axis=1.0) # E: No overload variant of "prod" matches argument type
-np.prod(a, out=False) # E: No overload variant of "prod" matches argument type
-np.prod(a, keepdims=1.0) # E: No overload variant of "prod" matches argument type
-np.prod(a, initial=int) # E: No overload variant of "prod" matches argument type
-np.prod(a, where=1.0) # E: No overload variant of "prod" matches argument type
+np.prod(a, axis=1.0) # E: incompatible type
+np.prod(a, out=False) # E: incompatible type
+np.prod(a, keepdims=1.0) # E: incompatible type
+np.prod(a, initial=int) # E: incompatible type
+np.prod(a, where=1.0) # E: incompatible type
np.cumprod(a, axis=1.0) # E: Argument "axis" to "cumprod" has incompatible type
np.cumprod(a, out=False) # E: Argument "out" to "cumprod" has incompatible type
np.size(a, axis=1.0) # E: Argument "axis" to "size" has incompatible type
-np.around(a, decimals=1.0) # E: No overload variant of "around" matches argument type
-np.around(a, out=type) # E: No overload variant of "around" matches argument type
+np.around(a, decimals=1.0) # E: incompatible type
+np.around(a, out=type) # E: incompatible type
-np.mean(a, axis=1.0) # E: No overload variant of "mean" matches argument type
-np.mean(a, out=False) # E: No overload variant of "mean" matches argument type
-np.mean(a, keepdims=1.0) # E: No overload variant of "mean" matches argument type
+np.mean(a, axis=1.0) # E: incompatible type
+np.mean(a, out=False) # E: incompatible type
+np.mean(a, keepdims=1.0) # E: incompatible type
-np.std(a, axis=1.0) # E: No overload variant of "std" matches argument type
-np.std(a, out=False) # E: No overload variant of "std" matches argument type
-np.std(a, ddof='test') # E: No overload variant of "std" matches argument type
-np.std(a, keepdims=1.0) # E: No overload variant of "std" matches argument type
+np.std(a, axis=1.0) # E: incompatible type
+np.std(a, out=False) # E: incompatible type
+np.std(a, ddof='test') # E: incompatible type
+np.std(a, keepdims=1.0) # E: incompatible type
-np.var(a, axis=1.0) # E: No overload variant of "var" matches argument type
-np.var(a, out=False) # E: No overload variant of "var" matches argument type
-np.var(a, ddof='test') # E: No overload variant of "var" matches argument type
-np.var(a, keepdims=1.0) # E: No overload variant of "var" matches argument type
+np.var(a, axis=1.0) # E: incompatible type
+np.var(a, out=False) # E: incompatible type
+np.var(a, ddof='test') # E: incompatible type
+np.var(a, keepdims=1.0) # E: incompatible type
diff --git a/numpy/typing/tests/data/reveal/arithmetic.py b/numpy/typing/tests/data/reveal/arithmetic.py
index 20310e691..7d93893d4 100644
--- a/numpy/typing/tests/data/reveal/arithmetic.py
+++ b/numpy/typing/tests/data/reveal/arithmetic.py
@@ -217,9 +217,9 @@ reveal_type(AR + f4) # E: Any
# Int
reveal_type(i8 + i8) # E: numpy.signedinteger[numpy.typing._64Bit]
-reveal_type(i8 + u8) # E: Union[numpy.signedinteger[Any], numpy.floating[numpy.typing._64Bit]]
+reveal_type(i8 + u8) # E: Any
reveal_type(i8 + i4) # E: numpy.signedinteger[numpy.typing._64Bit]
-reveal_type(i8 + u4) # E: Union[numpy.signedinteger[Any], numpy.floating[numpy.typing._64Bit]]
+reveal_type(i8 + u4) # E: Any
reveal_type(i8 + b_) # E: numpy.signedinteger[numpy.typing._64Bit]
reveal_type(i8 + b) # E: numpy.signedinteger[numpy.typing._64Bit]
reveal_type(i8 + c) # E: numpy.complexfloating[numpy.typing._64Bit, numpy.typing._64Bit]
@@ -228,19 +228,19 @@ reveal_type(i8 + i) # E: numpy.signedinteger[Any]
reveal_type(i8 + AR) # E: Any
reveal_type(u8 + u8) # E: numpy.unsignedinteger[numpy.typing._64Bit]
-reveal_type(u8 + i4) # E: Union[numpy.signedinteger[Any], numpy.floating[numpy.typing._64Bit]]
+reveal_type(u8 + i4) # E: Any
reveal_type(u8 + u4) # E: numpy.unsignedinteger[numpy.typing._64Bit]
reveal_type(u8 + b_) # E: numpy.unsignedinteger[numpy.typing._64Bit]
reveal_type(u8 + b) # E: numpy.unsignedinteger[numpy.typing._64Bit]
reveal_type(u8 + c) # E: numpy.complexfloating[numpy.typing._64Bit, numpy.typing._64Bit]
reveal_type(u8 + f) # E: numpy.floating[numpy.typing._64Bit]
-reveal_type(u8 + i) # E: Union[numpy.signedinteger[Any], numpy.floating[numpy.typing._64Bit]]
+reveal_type(u8 + i) # E: Any
reveal_type(u8 + AR) # E: Any
reveal_type(i8 + i8) # E: numpy.signedinteger[numpy.typing._64Bit]
-reveal_type(u8 + i8) # E: Union[numpy.signedinteger[Any], numpy.floating[numpy.typing._64Bit]]
+reveal_type(u8 + i8) # E: Any
reveal_type(i4 + i8) # E: numpy.signedinteger[numpy.typing._64Bit]
-reveal_type(u4 + i8) # E: Union[numpy.signedinteger[Any], numpy.floating[numpy.typing._64Bit]]
+reveal_type(u4 + i8) # E: Any
reveal_type(b_ + i8) # E: numpy.signedinteger[numpy.typing._64Bit]
reveal_type(b + i8) # E: numpy.signedinteger[numpy.typing._64Bit]
reveal_type(c + i8) # E: numpy.complexfloating[numpy.typing._64Bit, numpy.typing._64Bit]
@@ -249,13 +249,13 @@ reveal_type(i + i8) # E: numpy.signedinteger[Any]
reveal_type(AR + i8) # E: Any
reveal_type(u8 + u8) # E: numpy.unsignedinteger[numpy.typing._64Bit]
-reveal_type(i4 + u8) # E: Union[numpy.signedinteger[Any], numpy.floating[numpy.typing._64Bit]]
+reveal_type(i4 + u8) # E: Any
reveal_type(u4 + u8) # E: numpy.unsignedinteger[numpy.typing._64Bit]
reveal_type(b_ + u8) # E: numpy.unsignedinteger[numpy.typing._64Bit]
reveal_type(b + u8) # E: numpy.unsignedinteger[numpy.typing._64Bit]
reveal_type(c + u8) # E: numpy.complexfloating[numpy.typing._64Bit, numpy.typing._64Bit]
reveal_type(f + u8) # E: numpy.floating[numpy.typing._64Bit]
-reveal_type(i + u8) # E: Union[numpy.signedinteger[Any], numpy.floating[numpy.typing._64Bit]]
+reveal_type(i + u8) # E: Any
reveal_type(AR + u8) # E: Any
reveal_type(i4 + i8) # E: numpy.signedinteger[numpy.typing._64Bit]
@@ -265,11 +265,11 @@ reveal_type(i4 + b_) # E: numpy.signedinteger[numpy.typing._32Bit]
reveal_type(i4 + b) # E: numpy.signedinteger[numpy.typing._32Bit]
reveal_type(i4 + AR) # E: Any
-reveal_type(u4 + i8) # E: Union[numpy.signedinteger[Any], numpy.floating[numpy.typing._64Bit]]
-reveal_type(u4 + i4) # E: Union[numpy.signedinteger[Any], numpy.floating[numpy.typing._64Bit]]
+reveal_type(u4 + i8) # E: Any
+reveal_type(u4 + i4) # E: Any
reveal_type(u4 + u8) # E: numpy.unsignedinteger[numpy.typing._64Bit]
reveal_type(u4 + u4) # E: numpy.unsignedinteger[numpy.typing._32Bit]
-reveal_type(u4 + i) # E: Union[numpy.signedinteger[Any], numpy.floating[numpy.typing._64Bit]]
+reveal_type(u4 + i) # E: Any
reveal_type(u4 + b_) # E: numpy.unsignedinteger[numpy.typing._32Bit]
reveal_type(u4 + b) # E: numpy.unsignedinteger[numpy.typing._32Bit]
reveal_type(u4 + AR) # E: Any
@@ -281,11 +281,11 @@ reveal_type(b_ + i4) # E: numpy.signedinteger[numpy.typing._32Bit]
reveal_type(b + i4) # E: numpy.signedinteger[numpy.typing._32Bit]
reveal_type(AR + i4) # E: Any
-reveal_type(i8 + u4) # E: Union[numpy.signedinteger[Any], numpy.floating[numpy.typing._64Bit]]
-reveal_type(i4 + u4) # E: Union[numpy.signedinteger[Any], numpy.floating[numpy.typing._64Bit]]
+reveal_type(i8 + u4) # E: Any
+reveal_type(i4 + u4) # E: Any
reveal_type(u8 + u4) # E: numpy.unsignedinteger[numpy.typing._64Bit]
reveal_type(u4 + u4) # E: numpy.unsignedinteger[numpy.typing._32Bit]
reveal_type(b_ + u4) # E: numpy.unsignedinteger[numpy.typing._32Bit]
reveal_type(b + u4) # E: numpy.unsignedinteger[numpy.typing._32Bit]
-reveal_type(i + u4) # E: Union[numpy.signedinteger[Any], numpy.floating[numpy.typing._64Bit]]
+reveal_type(i + u4) # E: Any
reveal_type(AR + u4) # E: Any
diff --git a/numpy/typing/tests/data/reveal/array_constructors.py b/numpy/typing/tests/data/reveal/array_constructors.py
index 106174736..c4c162bb2 100644
--- a/numpy/typing/tests/data/reveal/array_constructors.py
+++ b/numpy/typing/tests/data/reveal/array_constructors.py
@@ -41,7 +41,7 @@ reveal_type(np.require(B, requirements="A")) # E: SubClass
reveal_type(np.require(C)) # E: ndarray
reveal_type(np.linspace(0, 10)) # E: numpy.ndarray
-reveal_type(np.linspace(0, 10, retstep=True)) # E: Tuple[numpy.ndarray, numpy.inexact[Any]]
+reveal_type(np.linspace(0, 10, retstep=True)) # E: Tuple[numpy.ndarray, Any]
reveal_type(np.logspace(0, 10)) # E: numpy.ndarray
reveal_type(np.geomspace(1, 10)) # E: numpy.ndarray
diff --git a/numpy/typing/tests/data/reveal/fromnumeric.py b/numpy/typing/tests/data/reveal/fromnumeric.py
index 75865c285..5d67ab97f 100644
--- a/numpy/typing/tests/data/reveal/fromnumeric.py
+++ b/numpy/typing/tests/data/reveal/fromnumeric.py
@@ -12,27 +12,13 @@ b = np.float32(1.0)
c = 1.0
d = np.array(1.0, dtype=np.float32) # writeable
-reveal_type(np.take(a, 0)) # E: numpy.bool_
-reveal_type(np.take(b, 0)) # E: numpy.floating[numpy.typing._32Bit]
-reveal_type(
- np.take(c, 0) # E: Union[numpy.generic, datetime.datetime, datetime.timedelta]
-)
-reveal_type(
- np.take(A, 0) # E: Union[numpy.generic, datetime.datetime, datetime.timedelta]
-)
-reveal_type(
- np.take(B, 0) # E: Union[numpy.generic, datetime.datetime, datetime.timedelta]
-)
-reveal_type(
- np.take( # E: Union[Union[numpy.generic, datetime.datetime, datetime.timedelta], numpy.ndarray]
- A, [0]
- )
-)
-reveal_type(
- np.take( # E: Union[Union[numpy.generic, datetime.datetime, datetime.timedelta], numpy.ndarray]
- B, [0]
- )
-)
+reveal_type(np.take(a, 0)) # E: Any
+reveal_type(np.take(b, 0)) # E: Any
+reveal_type(np.take(c, 0)) # E: Any
+reveal_type(np.take(A, 0)) # E: Any
+reveal_type(np.take(B, 0)) # E: Any
+reveal_type(np.take(A, [0])) # E: Any
+reveal_type(np.take(B, [0])) # E: Any
reveal_type(np.reshape(a, 1)) # E: numpy.ndarray
reveal_type(np.reshape(b, 1)) # E: numpy.ndarray
@@ -40,8 +26,8 @@ reveal_type(np.reshape(c, 1)) # E: numpy.ndarray
reveal_type(np.reshape(A, 1)) # E: numpy.ndarray
reveal_type(np.reshape(B, 1)) # E: numpy.ndarray
-reveal_type(np.choose(a, [True, True])) # E: numpy.bool_
-reveal_type(np.choose(A, [True, True])) # E: numpy.ndarray
+reveal_type(np.choose(a, [True, True])) # E: Any
+reveal_type(np.choose(A, [True, True])) # E: Any
reveal_type(np.repeat(a, 1)) # E: numpy.ndarray
reveal_type(np.repeat(b, 1)) # E: numpy.ndarray
@@ -66,11 +52,11 @@ reveal_type(np.partition(c, 0, axis=None)) # E: numpy.ndarray
reveal_type(np.partition(A, 0)) # E: numpy.ndarray
reveal_type(np.partition(B, 0)) # E: numpy.ndarray
-reveal_type(np.argpartition(a, 0)) # E: numpy.integer[Any]
-reveal_type(np.argpartition(b, 0)) # E: numpy.integer[Any]
-reveal_type(np.argpartition(c, 0)) # E: numpy.ndarray
-reveal_type(np.argpartition(A, 0)) # E: numpy.ndarray
-reveal_type(np.argpartition(B, 0)) # E: numpy.ndarray
+reveal_type(np.argpartition(a, 0)) # E: Any
+reveal_type(np.argpartition(b, 0)) # E: Any
+reveal_type(np.argpartition(c, 0)) # E: Any
+reveal_type(np.argpartition(A, 0)) # E: Any
+reveal_type(np.argpartition(B, 0)) # E: Any
reveal_type(np.sort(A, 0)) # E: numpy.ndarray
reveal_type(np.sort(B, 0)) # E: numpy.ndarray
@@ -78,18 +64,18 @@ reveal_type(np.sort(B, 0)) # E: numpy.ndarray
reveal_type(np.argsort(A, 0)) # E: numpy.ndarray
reveal_type(np.argsort(B, 0)) # E: numpy.ndarray
-reveal_type(np.argmax(A)) # E: numpy.integer[Any]
-reveal_type(np.argmax(B)) # E: numpy.integer[Any]
-reveal_type(np.argmax(A, axis=0)) # E: Union[numpy.integer[Any], numpy.ndarray]
-reveal_type(np.argmax(B, axis=0)) # E: Union[numpy.integer[Any], numpy.ndarray]
+reveal_type(np.argmax(A)) # E: numpy.signedinteger[Any]
+reveal_type(np.argmax(B)) # E: numpy.signedinteger[Any]
+reveal_type(np.argmax(A, axis=0)) # E: Any
+reveal_type(np.argmax(B, axis=0)) # E: Any
-reveal_type(np.argmin(A)) # E: numpy.integer[Any]
-reveal_type(np.argmin(B)) # E: numpy.integer[Any]
-reveal_type(np.argmin(A, axis=0)) # E: Union[numpy.integer[Any], numpy.ndarray]
-reveal_type(np.argmin(B, axis=0)) # E: Union[numpy.integer[Any], numpy.ndarray]
+reveal_type(np.argmin(A)) # E: numpy.signedinteger[Any]
+reveal_type(np.argmin(B)) # E: numpy.signedinteger[Any]
+reveal_type(np.argmin(A, axis=0)) # E: Any
+reveal_type(np.argmin(B, axis=0)) # E: Any
-reveal_type(np.searchsorted(A[0], 0)) # E: numpy.integer[Any]
-reveal_type(np.searchsorted(B[0], 0)) # E: numpy.integer[Any]
+reveal_type(np.searchsorted(A[0], 0)) # E: numpy.signedinteger[Any]
+reveal_type(np.searchsorted(B[0], 0)) # E: numpy.signedinteger[Any]
reveal_type(np.searchsorted(A[0], [0])) # E: numpy.ndarray
reveal_type(np.searchsorted(B[0], [0])) # E: numpy.ndarray
@@ -108,8 +94,8 @@ reveal_type(np.squeeze(B)) # E: numpy.ndarray
reveal_type(np.diagonal(A)) # E: numpy.ndarray
reveal_type(np.diagonal(B)) # E: numpy.ndarray
-reveal_type(np.trace(A)) # E: Union[numpy.number[Any], numpy.ndarray]
-reveal_type(np.trace(B)) # E: Union[numpy.number[Any], numpy.ndarray]
+reveal_type(np.trace(A)) # E: Any
+reveal_type(np.trace(B)) # E: Any
reveal_type(np.ravel(a)) # E: numpy.ndarray
reveal_type(np.ravel(b)) # E: numpy.ndarray
@@ -135,39 +121,39 @@ reveal_type(np.compress([True], c)) # E: numpy.ndarray
reveal_type(np.compress([True], A)) # E: numpy.ndarray
reveal_type(np.compress([True], B)) # E: numpy.ndarray
-reveal_type(np.clip(a, 0, 1.0)) # E: numpy.number[Any]
-reveal_type(np.clip(b, -1, 1)) # E: numpy.floating[numpy.typing._32Bit]
-reveal_type(np.clip(c, 0, 1)) # E: numpy.number[Any]
-reveal_type(np.clip(A, 0, 1)) # E: Union[numpy.number[Any], numpy.ndarray]
-reveal_type(np.clip(B, 0, 1)) # E: Union[numpy.number[Any], numpy.ndarray]
+reveal_type(np.clip(a, 0, 1.0)) # E: Any
+reveal_type(np.clip(b, -1, 1)) # E: Any
+reveal_type(np.clip(c, 0, 1)) # E: Any
+reveal_type(np.clip(A, 0, 1)) # E: Any
+reveal_type(np.clip(B, 0, 1)) # E: Any
-reveal_type(np.sum(a)) # E: numpy.number[Any]
-reveal_type(np.sum(b)) # E: numpy.floating[numpy.typing._32Bit]
-reveal_type(np.sum(c)) # E: numpy.number[Any]
-reveal_type(np.sum(A)) # E: numpy.number[Any]
-reveal_type(np.sum(B)) # E: numpy.number[Any]
-reveal_type(np.sum(A, axis=0)) # E: Union[numpy.number[Any], numpy.ndarray]
-reveal_type(np.sum(B, axis=0)) # E: Union[numpy.number[Any], numpy.ndarray]
+reveal_type(np.sum(a)) # E: Any
+reveal_type(np.sum(b)) # E: Any
+reveal_type(np.sum(c)) # E: Any
+reveal_type(np.sum(A)) # E: Any
+reveal_type(np.sum(B)) # E: Any
+reveal_type(np.sum(A, axis=0)) # E: Any
+reveal_type(np.sum(B, axis=0)) # E: Any
reveal_type(np.all(a)) # E: numpy.bool_
reveal_type(np.all(b)) # E: numpy.bool_
reveal_type(np.all(c)) # E: numpy.bool_
reveal_type(np.all(A)) # E: numpy.bool_
reveal_type(np.all(B)) # E: numpy.bool_
-reveal_type(np.all(A, axis=0)) # E: Union[numpy.bool_, numpy.ndarray]
-reveal_type(np.all(B, axis=0)) # E: Union[numpy.bool_, numpy.ndarray]
-reveal_type(np.all(A, keepdims=True)) # E: Union[numpy.bool_, numpy.ndarray]
-reveal_type(np.all(B, keepdims=True)) # E: Union[numpy.bool_, numpy.ndarray]
+reveal_type(np.all(A, axis=0)) # E: Any
+reveal_type(np.all(B, axis=0)) # E: Any
+reveal_type(np.all(A, keepdims=True)) # E: Any
+reveal_type(np.all(B, keepdims=True)) # E: Any
reveal_type(np.any(a)) # E: numpy.bool_
reveal_type(np.any(b)) # E: numpy.bool_
reveal_type(np.any(c)) # E: numpy.bool_
reveal_type(np.any(A)) # E: numpy.bool_
reveal_type(np.any(B)) # E: numpy.bool_
-reveal_type(np.any(A, axis=0)) # E: Union[numpy.bool_, numpy.ndarray]
-reveal_type(np.any(B, axis=0)) # E: Union[numpy.bool_, numpy.ndarray]
-reveal_type(np.any(A, keepdims=True)) # E: Union[numpy.bool_, numpy.ndarray]
-reveal_type(np.any(B, keepdims=True)) # E: Union[numpy.bool_, numpy.ndarray]
+reveal_type(np.any(A, axis=0)) # E: Any
+reveal_type(np.any(B, axis=0)) # E: Any
+reveal_type(np.any(A, keepdims=True)) # E: Any
+reveal_type(np.any(B, keepdims=True)) # E: Any
reveal_type(np.cumsum(a)) # E: numpy.ndarray
reveal_type(np.cumsum(b)) # E: numpy.ndarray
@@ -175,47 +161,47 @@ reveal_type(np.cumsum(c)) # E: numpy.ndarray
reveal_type(np.cumsum(A)) # E: numpy.ndarray
reveal_type(np.cumsum(B)) # E: numpy.ndarray
-reveal_type(np.ptp(a)) # E: numpy.number[Any]
-reveal_type(np.ptp(b)) # E: numpy.floating[numpy.typing._32Bit]
-reveal_type(np.ptp(c)) # E: numpy.number[Any]
-reveal_type(np.ptp(A)) # E: numpy.number[Any]
-reveal_type(np.ptp(B)) # E: numpy.number[Any]
-reveal_type(np.ptp(A, axis=0)) # E: Union[numpy.number[Any], numpy.ndarray]
-reveal_type(np.ptp(B, axis=0)) # E: Union[numpy.number[Any], numpy.ndarray]
-reveal_type(np.ptp(A, keepdims=True)) # E: Union[numpy.number[Any], numpy.ndarray]
-reveal_type(np.ptp(B, keepdims=True)) # E: Union[numpy.number[Any], numpy.ndarray]
-
-reveal_type(np.amax(a)) # E: numpy.number[Any]
-reveal_type(np.amax(b)) # E: numpy.floating[numpy.typing._32Bit]
-reveal_type(np.amax(c)) # E: numpy.number[Any]
-reveal_type(np.amax(A)) # E: numpy.number[Any]
-reveal_type(np.amax(B)) # E: numpy.number[Any]
-reveal_type(np.amax(A, axis=0)) # E: Union[numpy.number[Any], numpy.ndarray]
-reveal_type(np.amax(B, axis=0)) # E: Union[numpy.number[Any], numpy.ndarray]
-reveal_type(np.amax(A, keepdims=True)) # E: Union[numpy.number[Any], numpy.ndarray]
-reveal_type(np.amax(B, keepdims=True)) # E: Union[numpy.number[Any], numpy.ndarray]
-
-reveal_type(np.amin(a)) # E: numpy.number[Any]
-reveal_type(np.amin(b)) # E: numpy.floating[numpy.typing._32Bit]
-reveal_type(np.amin(c)) # E: numpy.number[Any]
-reveal_type(np.amin(A)) # E: numpy.number[Any]
-reveal_type(np.amin(B)) # E: numpy.number[Any]
-reveal_type(np.amin(A, axis=0)) # E: Union[numpy.number[Any], numpy.ndarray]
-reveal_type(np.amin(B, axis=0)) # E: Union[numpy.number[Any], numpy.ndarray]
-reveal_type(np.amin(A, keepdims=True)) # E: Union[numpy.number[Any], numpy.ndarray]
-reveal_type(np.amin(B, keepdims=True)) # E: Union[numpy.number[Any], numpy.ndarray]
-
-reveal_type(np.prod(a)) # E: numpy.number[Any]
-reveal_type(np.prod(b)) # E: numpy.floating[numpy.typing._32Bit]
-reveal_type(np.prod(c)) # E: numpy.number[Any]
-reveal_type(np.prod(A)) # E: numpy.number[Any]
-reveal_type(np.prod(B)) # E: numpy.number[Any]
-reveal_type(np.prod(A, axis=0)) # E: Union[numpy.number[Any], numpy.ndarray]
-reveal_type(np.prod(B, axis=0)) # E: Union[numpy.number[Any], numpy.ndarray]
-reveal_type(np.prod(A, keepdims=True)) # E: Union[numpy.number[Any], numpy.ndarray]
-reveal_type(np.prod(B, keepdims=True)) # E: Union[numpy.number[Any], numpy.ndarray]
-reveal_type(np.prod(b, out=d)) # E: numpy.ndarray
-reveal_type(np.prod(B, out=d)) # E: numpy.ndarray
+reveal_type(np.ptp(a)) # E: Any
+reveal_type(np.ptp(b)) # E: Any
+reveal_type(np.ptp(c)) # E: Any
+reveal_type(np.ptp(A)) # E: Any
+reveal_type(np.ptp(B)) # E: Any
+reveal_type(np.ptp(A, axis=0)) # E: Any
+reveal_type(np.ptp(B, axis=0)) # E: Any
+reveal_type(np.ptp(A, keepdims=True)) # E: Any
+reveal_type(np.ptp(B, keepdims=True)) # E: Any
+
+reveal_type(np.amax(a)) # E: Any
+reveal_type(np.amax(b)) # E: Any
+reveal_type(np.amax(c)) # E: Any
+reveal_type(np.amax(A)) # E: Any
+reveal_type(np.amax(B)) # E: Any
+reveal_type(np.amax(A, axis=0)) # E: Any
+reveal_type(np.amax(B, axis=0)) # E: Any
+reveal_type(np.amax(A, keepdims=True)) # E: Any
+reveal_type(np.amax(B, keepdims=True)) # E: Any
+
+reveal_type(np.amin(a)) # E: Any
+reveal_type(np.amin(b)) # E: Any
+reveal_type(np.amin(c)) # E: Any
+reveal_type(np.amin(A)) # E: Any
+reveal_type(np.amin(B)) # E: Any
+reveal_type(np.amin(A, axis=0)) # E: Any
+reveal_type(np.amin(B, axis=0)) # E: Any
+reveal_type(np.amin(A, keepdims=True)) # E: Any
+reveal_type(np.amin(B, keepdims=True)) # E: Any
+
+reveal_type(np.prod(a)) # E: Any
+reveal_type(np.prod(b)) # E: Any
+reveal_type(np.prod(c)) # E: Any
+reveal_type(np.prod(A)) # E: Any
+reveal_type(np.prod(B)) # E: Any
+reveal_type(np.prod(A, axis=0)) # E: Any
+reveal_type(np.prod(B, axis=0)) # E: Any
+reveal_type(np.prod(A, keepdims=True)) # E: Any
+reveal_type(np.prod(B, keepdims=True)) # E: Any
+reveal_type(np.prod(b, out=d)) # E: Any
+reveal_type(np.prod(B, out=d)) # E: Any
reveal_type(np.cumprod(a)) # E: numpy.ndarray
reveal_type(np.cumprod(b)) # E: numpy.ndarray
@@ -235,44 +221,44 @@ reveal_type(np.size(c)) # E: int
reveal_type(np.size(A)) # E: int
reveal_type(np.size(B)) # E: int
-reveal_type(np.around(a)) # E: numpy.number[Any]
-reveal_type(np.around(b)) # E: numpy.floating[numpy.typing._32Bit]
-reveal_type(np.around(c)) # E: numpy.number[Any]
-reveal_type(np.around(A)) # E: numpy.ndarray
-reveal_type(np.around(B)) # E: numpy.ndarray
-
-reveal_type(np.mean(a)) # E: numpy.number[Any]
-reveal_type(np.mean(b)) # E: numpy.number[Any]
-reveal_type(np.mean(c)) # E: numpy.number[Any]
-reveal_type(np.mean(A)) # E: numpy.number[Any]
-reveal_type(np.mean(B)) # E: numpy.number[Any]
-reveal_type(np.mean(A, axis=0)) # E: Union[numpy.number[Any], numpy.ndarray]
-reveal_type(np.mean(B, axis=0)) # E: Union[numpy.number[Any], numpy.ndarray]
-reveal_type(np.mean(A, keepdims=True)) # E: Union[numpy.number[Any], numpy.ndarray]
-reveal_type(np.mean(B, keepdims=True)) # E: Union[numpy.number[Any], numpy.ndarray]
-reveal_type(np.mean(b, out=d)) # E: numpy.ndarray
-reveal_type(np.mean(B, out=d)) # E: numpy.ndarray
-
-reveal_type(np.std(a)) # E: numpy.number[Any]
-reveal_type(np.std(b)) # E: numpy.number[Any]
-reveal_type(np.std(c)) # E: numpy.number[Any]
-reveal_type(np.std(A)) # E: numpy.number[Any]
-reveal_type(np.std(B)) # E: numpy.number[Any]
-reveal_type(np.std(A, axis=0)) # E: Union[numpy.number[Any], numpy.ndarray]
-reveal_type(np.std(B, axis=0)) # E: Union[numpy.number[Any], numpy.ndarray]
-reveal_type(np.std(A, keepdims=True)) # E: Union[numpy.number[Any], numpy.ndarray]
-reveal_type(np.std(B, keepdims=True)) # E: Union[numpy.number[Any], numpy.ndarray]
-reveal_type(np.std(b, out=d)) # E: numpy.ndarray
-reveal_type(np.std(B, out=d)) # E: numpy.ndarray
-
-reveal_type(np.var(a)) # E: numpy.number[Any]
-reveal_type(np.var(b)) # E: numpy.number[Any]
-reveal_type(np.var(c)) # E: numpy.number[Any]
-reveal_type(np.var(A)) # E: numpy.number[Any]
-reveal_type(np.var(B)) # E: numpy.number[Any]
-reveal_type(np.var(A, axis=0)) # E: Union[numpy.number[Any], numpy.ndarray]
-reveal_type(np.var(B, axis=0)) # E: Union[numpy.number[Any], numpy.ndarray]
-reveal_type(np.var(A, keepdims=True)) # E: Union[numpy.number[Any], numpy.ndarray]
-reveal_type(np.var(B, keepdims=True)) # E: Union[numpy.number[Any], numpy.ndarray]
-reveal_type(np.var(b, out=d)) # E: numpy.ndarray
-reveal_type(np.var(B, out=d)) # E: numpy.ndarray
+reveal_type(np.around(a)) # E: Any
+reveal_type(np.around(b)) # E: Any
+reveal_type(np.around(c)) # E: Any
+reveal_type(np.around(A)) # E: Any
+reveal_type(np.around(B)) # E: Any
+
+reveal_type(np.mean(a)) # E: Any
+reveal_type(np.mean(b)) # E: Any
+reveal_type(np.mean(c)) # E: Any
+reveal_type(np.mean(A)) # E: Any
+reveal_type(np.mean(B)) # E: Any
+reveal_type(np.mean(A, axis=0)) # E: Any
+reveal_type(np.mean(B, axis=0)) # E: Any
+reveal_type(np.mean(A, keepdims=True)) # E: Any
+reveal_type(np.mean(B, keepdims=True)) # E: Any
+reveal_type(np.mean(b, out=d)) # E: Any
+reveal_type(np.mean(B, out=d)) # E: Any
+
+reveal_type(np.std(a)) # E: Any
+reveal_type(np.std(b)) # E: Any
+reveal_type(np.std(c)) # E: Any
+reveal_type(np.std(A)) # E: Any
+reveal_type(np.std(B)) # E: Any
+reveal_type(np.std(A, axis=0)) # E: Any
+reveal_type(np.std(B, axis=0)) # E: Any
+reveal_type(np.std(A, keepdims=True)) # E: Any
+reveal_type(np.std(B, keepdims=True)) # E: Any
+reveal_type(np.std(b, out=d)) # E: Any
+reveal_type(np.std(B, out=d)) # E: Any
+
+reveal_type(np.var(a)) # E: Any
+reveal_type(np.var(b)) # E: Any
+reveal_type(np.var(c)) # E: Any
+reveal_type(np.var(A)) # E: Any
+reveal_type(np.var(B)) # E: Any
+reveal_type(np.var(A, axis=0)) # E: Any
+reveal_type(np.var(B, axis=0)) # E: Any
+reveal_type(np.var(A, keepdims=True)) # E: Any
+reveal_type(np.var(B, keepdims=True)) # E: Any
+reveal_type(np.var(b, out=d)) # E: Any
+reveal_type(np.var(B, out=d)) # E: Any
diff --git a/numpy/typing/tests/data/reveal/ndarray_misc.py b/numpy/typing/tests/data/reveal/ndarray_misc.py
index 826c8aaa6..80e1c484e 100644
--- a/numpy/typing/tests/data/reveal/ndarray_misc.py
+++ b/numpy/typing/tests/data/reveal/ndarray_misc.py
@@ -16,24 +16,24 @@ B: SubClass
reveal_type(f8.all()) # E: numpy.bool_
reveal_type(A.all()) # E: numpy.bool_
-reveal_type(A.all(axis=0)) # E: Union[numpy.bool_, numpy.ndarray]
-reveal_type(A.all(keepdims=True)) # E: Union[numpy.bool_, numpy.ndarray]
+reveal_type(A.all(axis=0)) # E: Any
+reveal_type(A.all(keepdims=True)) # E: Any
reveal_type(A.all(out=B)) # E: SubClass
reveal_type(f8.any()) # E: numpy.bool_
reveal_type(A.any()) # E: numpy.bool_
-reveal_type(A.any(axis=0)) # E: Union[numpy.bool_, numpy.ndarray]
-reveal_type(A.any(keepdims=True)) # E: Union[numpy.bool_, numpy.ndarray]
+reveal_type(A.any(axis=0)) # E: Any
+reveal_type(A.any(keepdims=True)) # E: Any
reveal_type(A.any(out=B)) # E: SubClass
reveal_type(f8.argmax()) # E: numpy.signedinteger[Any]
reveal_type(A.argmax()) # E: numpy.signedinteger[Any]
-reveal_type(A.argmax(axis=0)) # E: Union[numpy.signedinteger[Any], numpy.ndarray]
+reveal_type(A.argmax(axis=0)) # E: Any
reveal_type(A.argmax(out=B)) # E: SubClass
reveal_type(f8.argmin()) # E: numpy.signedinteger[Any]
reveal_type(A.argmin()) # E: numpy.signedinteger[Any]
-reveal_type(A.argmin(axis=0)) # E: Union[numpy.signedinteger[Any], numpy.ndarray]
+reveal_type(A.argmin(axis=0)) # E: Any
reveal_type(A.argmin(out=B)) # E: SubClass
reveal_type(f8.argsort()) # E: numpy.ndarray
@@ -43,9 +43,9 @@ reveal_type(f8.astype(np.int64).choose([()])) # E: numpy.ndarray
reveal_type(A.choose([0])) # E: numpy.ndarray
reveal_type(A.choose([0], out=B)) # E: SubClass
-reveal_type(f8.clip(1)) # E: Union[numpy.number[Any], numpy.ndarray]
-reveal_type(A.clip(1)) # E: Union[numpy.number[Any], numpy.ndarray]
-reveal_type(A.clip(None, 1)) # E: Union[numpy.number[Any], numpy.ndarray]
+reveal_type(f8.clip(1)) # E: Any
+reveal_type(A.clip(1)) # E: Any
+reveal_type(A.clip(None, 1)) # E: Any
reveal_type(A.clip(1, out=B)) # E: SubClass
reveal_type(A.clip(None, 1, out=B)) # E: SubClass
@@ -69,38 +69,38 @@ reveal_type(f8.cumsum()) # E: numpy.ndarray
reveal_type(A.cumsum()) # E: numpy.ndarray
reveal_type(A.cumsum(out=B)) # E: SubClass
-reveal_type(f8.max()) # E: numpy.number[Any]
-reveal_type(A.max()) # E: numpy.number[Any]
-reveal_type(A.max(axis=0)) # E: Union[numpy.number[Any], numpy.ndarray]
-reveal_type(A.max(keepdims=True)) # E: Union[numpy.number[Any], numpy.ndarray]
+reveal_type(f8.max()) # E: Any
+reveal_type(A.max()) # E: Any
+reveal_type(A.max(axis=0)) # E: Any
+reveal_type(A.max(keepdims=True)) # E: Any
reveal_type(A.max(out=B)) # E: SubClass
-reveal_type(f8.mean()) # E: numpy.number[Any]
-reveal_type(A.mean()) # E: numpy.number[Any]
-reveal_type(A.mean(axis=0)) # E: Union[numpy.number[Any], numpy.ndarray]
-reveal_type(A.mean(keepdims=True)) # E: Union[numpy.number[Any], numpy.ndarray]
+reveal_type(f8.mean()) # E: Any
+reveal_type(A.mean()) # E: Any
+reveal_type(A.mean(axis=0)) # E: Any
+reveal_type(A.mean(keepdims=True)) # E: Any
reveal_type(A.mean(out=B)) # E: SubClass
-reveal_type(f8.min()) # E: numpy.number[Any]
-reveal_type(A.min()) # E: numpy.number[Any]
-reveal_type(A.min(axis=0)) # E: Union[numpy.number[Any], numpy.ndarray]
-reveal_type(A.min(keepdims=True)) # E: Union[numpy.number[Any], numpy.ndarray]
+reveal_type(f8.min()) # E: Any
+reveal_type(A.min()) # E: Any
+reveal_type(A.min(axis=0)) # E: Any
+reveal_type(A.min(keepdims=True)) # E: Any
reveal_type(A.min(out=B)) # E: SubClass
reveal_type(f8.newbyteorder()) # E: numpy.floating[numpy.typing._64Bit]
reveal_type(A.newbyteorder()) # E: numpy.ndarray
reveal_type(B.newbyteorder('|')) # E: SubClass
-reveal_type(f8.prod()) # E: numpy.number[Any]
-reveal_type(A.prod()) # E: numpy.number[Any]
-reveal_type(A.prod(axis=0)) # E: Union[numpy.number[Any], numpy.ndarray]
-reveal_type(A.prod(keepdims=True)) # E: Union[numpy.number[Any], numpy.ndarray]
+reveal_type(f8.prod()) # E: Any
+reveal_type(A.prod()) # E: Any
+reveal_type(A.prod(axis=0)) # E: Any
+reveal_type(A.prod(keepdims=True)) # E: Any
reveal_type(A.prod(out=B)) # E: SubClass
-reveal_type(f8.ptp()) # E: numpy.number[Any]
-reveal_type(A.ptp()) # E: numpy.number[Any]
-reveal_type(A.ptp(axis=0)) # E: Union[numpy.number[Any], numpy.ndarray]
-reveal_type(A.ptp(keepdims=True)) # E: Union[numpy.number[Any], numpy.ndarray]
+reveal_type(f8.ptp()) # E: Any
+reveal_type(A.ptp()) # E: Any
+reveal_type(A.ptp(axis=0)) # E: Any
+reveal_type(A.ptp(keepdims=True)) # E: Any
reveal_type(A.ptp(out=B)) # E: SubClass
reveal_type(f8.round()) # E: numpy.floating[numpy.typing._64Bit]
@@ -111,40 +111,40 @@ reveal_type(f8.repeat(1)) # E: numpy.ndarray
reveal_type(A.repeat(1)) # E: numpy.ndarray
reveal_type(B.repeat(1)) # E: numpy.ndarray
-reveal_type(f8.std()) # E: numpy.number[Any]
-reveal_type(A.std()) # E: numpy.number[Any]
-reveal_type(A.std(axis=0)) # E: Union[numpy.number[Any], numpy.ndarray]
-reveal_type(A.std(keepdims=True)) # E: Union[numpy.number[Any], numpy.ndarray]
+reveal_type(f8.std()) # E: Any
+reveal_type(A.std()) # E: Any
+reveal_type(A.std(axis=0)) # E: Any
+reveal_type(A.std(keepdims=True)) # E: Any
reveal_type(A.std(out=B)) # E: SubClass
-reveal_type(f8.sum()) # E: numpy.number[Any]
-reveal_type(A.sum()) # E: numpy.number[Any]
-reveal_type(A.sum(axis=0)) # E: Union[numpy.number[Any], numpy.ndarray]
-reveal_type(A.sum(keepdims=True)) # E: Union[numpy.number[Any], numpy.ndarray]
+reveal_type(f8.sum()) # E: Any
+reveal_type(A.sum()) # E: Any
+reveal_type(A.sum(axis=0)) # E: Any
+reveal_type(A.sum(keepdims=True)) # E: Any
reveal_type(A.sum(out=B)) # E: SubClass
-reveal_type(f8.take(0)) # E: numpy.generic
-reveal_type(A.take(0)) # E: numpy.generic
+reveal_type(f8.take(0)) # E: Any
+reveal_type(A.take(0)) # E: Any
reveal_type(A.take([0])) # E: numpy.ndarray
reveal_type(A.take(0, out=B)) # E: SubClass
reveal_type(A.take([0], out=B)) # E: SubClass
-reveal_type(f8.var()) # E: numpy.number[Any]
-reveal_type(A.var()) # E: numpy.number[Any]
-reveal_type(A.var(axis=0)) # E: Union[numpy.number[Any], numpy.ndarray]
-reveal_type(A.var(keepdims=True)) # E: Union[numpy.number[Any], numpy.ndarray]
+reveal_type(f8.var()) # E: Any
+reveal_type(A.var()) # E: Any
+reveal_type(A.var(axis=0)) # E: Any
+reveal_type(A.var(keepdims=True)) # E: Any
reveal_type(A.var(out=B)) # E: SubClass
reveal_type(A.argpartition([0])) # E: numpy.ndarray
reveal_type(A.diagonal()) # E: numpy.ndarray
-reveal_type(A.dot(1)) # E: Union[numpy.number[Any], numpy.ndarray]
+reveal_type(A.dot(1)) # E: Any
reveal_type(A.dot(1, out=B)) # E: SubClass
reveal_type(A.nonzero()) # E: tuple[numpy.ndarray]
reveal_type(A.searchsorted([1])) # E: numpy.ndarray
-reveal_type(A.trace()) # E: Union[numpy.number[Any], numpy.ndarray]
+reveal_type(A.trace()) # E: Any
reveal_type(A.trace(out=B)) # E: SubClass
diff --git a/numpy/typing/tests/data/reveal/numeric.py b/numpy/typing/tests/data/reveal/numeric.py
index 5cbfa4ac7..a3671cef9 100644
--- a/numpy/typing/tests/data/reveal/numeric.py
+++ b/numpy/typing/tests/data/reveal/numeric.py
@@ -20,8 +20,8 @@ C: SubClass
reveal_type(np.count_nonzero(i8)) # E: int
reveal_type(np.count_nonzero(A)) # E: int
reveal_type(np.count_nonzero(B)) # E: int
-reveal_type(np.count_nonzero(A, keepdims=True)) # E: Union[numpy.signedinteger[Any], numpy.ndarray]
-reveal_type(np.count_nonzero(A, axis=0)) # E: Union[numpy.signedinteger[Any], numpy.ndarray]
+reveal_type(np.count_nonzero(A, keepdims=True)) # E: Any
+reveal_type(np.count_nonzero(A, axis=0)) # E: Any
reveal_type(np.isfortran(i8)) # E: bool
reveal_type(np.isfortran(A)) # E: bool
@@ -76,9 +76,9 @@ reveal_type(np.allclose(i8, A)) # E: bool
reveal_type(np.allclose(B, A)) # E: bool
reveal_type(np.allclose(A, A)) # E: bool
-reveal_type(np.isclose(i8, A)) # E: Union[numpy.bool_, numpy.ndarray]
-reveal_type(np.isclose(B, A)) # E: Union[numpy.bool_, numpy.ndarray]
-reveal_type(np.isclose(A, A)) # E: Union[numpy.bool_, numpy.ndarray]
+reveal_type(np.isclose(i8, A)) # E: Any
+reveal_type(np.isclose(B, A)) # E: Any
+reveal_type(np.isclose(A, A)) # E: Any
reveal_type(np.array_equal(i8, A)) # E: bool
reveal_type(np.array_equal(B, A)) # E: bool