summaryrefslogtreecommitdiff
path: root/numpy/typing
diff options
context:
space:
mode:
authorBas van Beek <b.f.van.beek@vu.nl>2022-02-10 10:03:39 +0100
committerBas van Beek <43369155+BvB93@users.noreply.github.com>2022-02-14 19:05:51 +0100
commit678da144191164d1dbc22d69958f6022a91d742f (patch)
tree9aa86acb5a497281f86b376cafd5afbe1be944cb /numpy/typing
parent91d49731cb5611135dc8810a2990e0acca34fdaa (diff)
downloadnumpy-678da144191164d1dbc22d69958f6022a91d742f.tar.gz
TYP: Add dtype-typing support to `fromnumeric` part 3
Diffstat (limited to 'numpy/typing')
-rw-r--r--numpy/typing/tests/data/fail/fromnumeric.pyi54
-rw-r--r--numpy/typing/tests/data/reveal/fromnumeric.pyi108
2 files changed, 90 insertions, 72 deletions
diff --git a/numpy/typing/tests/data/fail/fromnumeric.pyi b/numpy/typing/tests/data/fail/fromnumeric.pyi
index 5f292999a..b679703c7 100644
--- a/numpy/typing/tests/data/fail/fromnumeric.pyi
+++ b/numpy/typing/tests/data/fail/fromnumeric.pyi
@@ -1,9 +1,11 @@
"""Tests for :mod:`numpy.core.fromnumeric`."""
import numpy as np
+import numpy.typing as npt
A = np.array(True, ndmin=2, dtype=bool)
A.setflags(write=False)
+AR_U: npt.NDArray[np.str_]
a = np.bool_(True)
@@ -124,30 +126,36 @@ np.amin(a, out=1.0) # E: No overload variant
np.amin(a, initial=[1.0]) # E: No overload variant
np.amin(a, where=[1.0]) # E: incompatible 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.prod(a, axis=1.0) # E: No overload variant
+np.prod(a, out=False) # E: No overload variant
+np.prod(a, keepdims=1.0) # E: No overload variant
+np.prod(a, initial=int) # E: No overload variant
+np.prod(a, where=1.0) # E: No overload variant
+np.prod(AR_U) # 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.cumprod(a, axis=1.0) # E: No overload variant
+np.cumprod(a, out=False) # E: No overload variant
+np.cumprod(AR_U) # E: incompatible type
np.size(a, axis=1.0) # E: Argument "axis" to "size" has incompatible 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: 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: 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: 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
+np.around(a, decimals=1.0) # E: No overload variant
+np.around(a, out=type) # E: No overload variant
+np.around(AR_U) # E: incompatible type
+
+np.mean(a, axis=1.0) # E: No overload variant
+np.mean(a, out=False) # E: No overload variant
+np.mean(a, keepdims=1.0) # E: No overload variant
+np.mean(AR_U) # E: incompatible type
+
+np.std(a, axis=1.0) # E: No overload variant
+np.std(a, out=False) # E: No overload variant
+np.std(a, ddof='test') # E: No overload variant
+np.std(a, keepdims=1.0) # E: No overload variant
+np.std(AR_U) # E: incompatible type
+
+np.var(a, axis=1.0) # E: No overload variant
+np.var(a, out=False) # E: No overload variant
+np.var(a, ddof='test') # E: No overload variant
+np.var(a, keepdims=1.0) # E: No overload variant
+np.var(AR_U) # E: incompatible type
diff --git a/numpy/typing/tests/data/reveal/fromnumeric.pyi b/numpy/typing/tests/data/reveal/fromnumeric.pyi
index f9f0ff625..6adbc35bf 100644
--- a/numpy/typing/tests/data/reveal/fromnumeric.pyi
+++ b/numpy/typing/tests/data/reveal/fromnumeric.pyi
@@ -8,11 +8,15 @@ class NDArraySubclass(npt.NDArray[np.complex128]):
AR_b: npt.NDArray[np.bool_]
AR_f4: npt.NDArray[np.float32]
+AR_c16: npt.NDArray[np.complex128]
+AR_u8: npt.NDArray[np.uint64]
AR_i8: npt.NDArray[np.int64]
+AR_O: npt.NDArray[np.object_]
AR_subclass: NDArraySubclass
b: np.bool_
f4: np.float32
+i8: np.int64
f: float
reveal_type(np.take(b, 0)) # E: bool_
@@ -214,23 +218,28 @@ reveal_type(np.amin(AR_b, keepdims=True)) # E: Any
reveal_type(np.amin(AR_f4, keepdims=True)) # E: Any
reveal_type(np.amin(AR_f4, out=AR_subclass)) # E: NDArraySubclass
-reveal_type(np.prod(b)) # E: Any
-reveal_type(np.prod(f4)) # E: Any
-reveal_type(np.prod(f)) # E: Any
-reveal_type(np.prod(AR_b)) # E: Any
-reveal_type(np.prod(AR_f4)) # E: Any
-reveal_type(np.prod(AR_b, axis=0)) # E: Any
+reveal_type(np.prod(AR_b)) # E: {int_}
+reveal_type(np.prod(AR_u8)) # E: {uint64}
+reveal_type(np.prod(AR_i8)) # E: {int64}
+reveal_type(np.prod(AR_f4)) # E: floating[Any]
+reveal_type(np.prod(AR_c16)) # E: complexfloating[Any, Any]
+reveal_type(np.prod(AR_O)) # E: Any
reveal_type(np.prod(AR_f4, axis=0)) # E: Any
-reveal_type(np.prod(AR_b, keepdims=True)) # E: Any
reveal_type(np.prod(AR_f4, keepdims=True)) # E: Any
-reveal_type(np.prod(f4, out=AR_i8)) # E: Any
-reveal_type(np.prod(AR_f4, out=AR_i8)) # E: Any
-
-reveal_type(np.cumprod(b)) # E: ndarray[Any, Any]
-reveal_type(np.cumprod(f4)) # E: ndarray[Any, Any]
-reveal_type(np.cumprod(f)) # E: ndarray[Any, Any]
-reveal_type(np.cumprod(AR_b)) # E: ndarray[Any, Any]
-reveal_type(np.cumprod(AR_f4)) # E: ndarray[Any, Any]
+reveal_type(np.prod(AR_f4, dtype=np.float64)) # E: {float64}
+reveal_type(np.prod(AR_f4, dtype=float)) # E: Any
+reveal_type(np.prod(AR_f4, out=AR_subclass)) # E: NDArraySubclass
+
+reveal_type(np.cumprod(AR_b)) # E: ndarray[Any, dtype[{int_}]]
+reveal_type(np.cumprod(AR_u8)) # E: ndarray[Any, dtype[{uint64}]]
+reveal_type(np.cumprod(AR_i8)) # E: ndarray[Any, dtype[{int64}]]
+reveal_type(np.cumprod(AR_f4)) # E: ndarray[Any, dtype[floating[Any]]]
+reveal_type(np.cumprod(AR_c16)) # E: ndarray[Any, dtype[complexfloating[Any, Any]]]
+reveal_type(np.cumprod(AR_O)) # E: ndarray[Any, dtype[object_]]
+reveal_type(np.cumprod(AR_f4, axis=0)) # E: ndarray[Any, dtype[floating[Any]]]
+reveal_type(np.cumprod(AR_f4, dtype=np.float64)) # E: ndarray[Any, dtype[{float64}]]
+reveal_type(np.cumprod(AR_f4, dtype=float)) # E: ndarray[Any, dtype[Any]]
+reveal_type(np.cumprod(AR_f4, out=AR_subclass)) # E: NDArraySubclass
reveal_type(np.ndim(b)) # E: int
reveal_type(np.ndim(f4)) # E: int
@@ -244,44 +253,45 @@ reveal_type(np.size(f)) # E: int
reveal_type(np.size(AR_b)) # E: int
reveal_type(np.size(AR_f4)) # E: int
-reveal_type(np.around(b)) # E: Any
-reveal_type(np.around(f4)) # E: Any
+reveal_type(np.around(b)) # E: {float16}
reveal_type(np.around(f)) # E: Any
-reveal_type(np.around(AR_b)) # E: Any
-reveal_type(np.around(AR_f4)) # E: Any
-
-reveal_type(np.mean(b)) # E: Any
-reveal_type(np.mean(f4)) # E: Any
-reveal_type(np.mean(f)) # E: Any
-reveal_type(np.mean(AR_b)) # E: Any
-reveal_type(np.mean(AR_f4)) # E: Any
-reveal_type(np.mean(AR_b, axis=0)) # E: Any
+reveal_type(np.around(i8)) # E: {int64}
+reveal_type(np.around(f4)) # E: {float32}
+reveal_type(np.around(AR_b)) # E: ndarray[Any, dtype[{float16}]]
+reveal_type(np.around(AR_i8)) # E: ndarray[Any, dtype[{int64}]]
+reveal_type(np.around(AR_f4)) # E: ndarray[Any, dtype[{float32}]]
+reveal_type(np.around([1.5])) # E: ndarray[Any, dtype[Any]]
+reveal_type(np.around(AR_f4, out=AR_subclass)) # E: NDArraySubclass
+
+reveal_type(np.mean(AR_b)) # E: floating[Any]
+reveal_type(np.mean(AR_i8)) # E: floating[Any]
+reveal_type(np.mean(AR_f4)) # E: floating[Any]
+reveal_type(np.mean(AR_c16)) # E: complexfloating[Any, Any]
+reveal_type(np.mean(AR_O)) # E: Any
reveal_type(np.mean(AR_f4, axis=0)) # E: Any
-reveal_type(np.mean(AR_b, keepdims=True)) # E: Any
reveal_type(np.mean(AR_f4, keepdims=True)) # E: Any
-reveal_type(np.mean(f4, out=AR_i8)) # E: Any
-reveal_type(np.mean(AR_f4, out=AR_i8)) # E: Any
-
-reveal_type(np.std(b)) # E: Any
-reveal_type(np.std(f4)) # E: Any
-reveal_type(np.std(f)) # E: Any
-reveal_type(np.std(AR_b)) # E: Any
-reveal_type(np.std(AR_f4)) # E: Any
-reveal_type(np.std(AR_b, axis=0)) # E: Any
+reveal_type(np.mean(AR_f4, dtype=float)) # E: Any
+reveal_type(np.mean(AR_f4, dtype=np.float64)) # E: {float64}
+reveal_type(np.mean(AR_f4, out=AR_subclass)) # E: NDArraySubclass
+
+reveal_type(np.std(AR_b)) # E: floating[Any]
+reveal_type(np.std(AR_i8)) # E: floating[Any]
+reveal_type(np.std(AR_f4)) # E: floating[Any]
+reveal_type(np.std(AR_c16)) # E: floating[Any]
+reveal_type(np.std(AR_O)) # E: Any
reveal_type(np.std(AR_f4, axis=0)) # E: Any
-reveal_type(np.std(AR_b, keepdims=True)) # E: Any
reveal_type(np.std(AR_f4, keepdims=True)) # E: Any
-reveal_type(np.std(f4, out=AR_i8)) # E: Any
-reveal_type(np.std(AR_f4, out=AR_i8)) # E: Any
-
-reveal_type(np.var(b)) # E: Any
-reveal_type(np.var(f4)) # E: Any
-reveal_type(np.var(f)) # E: Any
-reveal_type(np.var(AR_b)) # E: Any
-reveal_type(np.var(AR_f4)) # E: Any
-reveal_type(np.var(AR_b, axis=0)) # E: Any
+reveal_type(np.std(AR_f4, dtype=float)) # E: Any
+reveal_type(np.std(AR_f4, dtype=np.float64)) # E: {float64}
+reveal_type(np.std(AR_f4, out=AR_subclass)) # E: NDArraySubclass
+
+reveal_type(np.var(AR_b)) # E: floating[Any]
+reveal_type(np.var(AR_i8)) # E: floating[Any]
+reveal_type(np.var(AR_f4)) # E: floating[Any]
+reveal_type(np.var(AR_c16)) # E: floating[Any]
+reveal_type(np.var(AR_O)) # E: Any
reveal_type(np.var(AR_f4, axis=0)) # E: Any
-reveal_type(np.var(AR_b, keepdims=True)) # E: Any
reveal_type(np.var(AR_f4, keepdims=True)) # E: Any
-reveal_type(np.var(f4, out=AR_i8)) # E: Any
-reveal_type(np.var(AR_f4, out=AR_i8)) # E: Any
+reveal_type(np.var(AR_f4, dtype=float)) # E: Any
+reveal_type(np.var(AR_f4, dtype=np.float64)) # E: {float64}
+reveal_type(np.var(AR_f4, out=AR_subclass)) # E: NDArraySubclass