diff options
author | Bas van Beek <b.f.van.beek@vu.nl> | 2021-05-12 14:49:06 +0200 |
---|---|---|
committer | Bas van Beek <b.f.van.beek@vu.nl> | 2021-05-12 15:53:36 +0200 |
commit | eb28af241185586467f145d4c986e8f315b3d940 (patch) | |
tree | 11f1e00a806c1d36a6be1a8fd15f9061fd59d3d3 | |
parent | 5f59e7729f0b1708f58ec0e5c72a90b023f45458 (diff) | |
download | numpy-eb28af241185586467f145d4c986e8f315b3d940.tar.gz |
TST: Add typing tests for the `item`, `take`, `tolist` and `repeat` methods
-rw-r--r-- | numpy/typing/tests/data/fail/fromnumeric.py | 4 | ||||
-rw-r--r-- | numpy/typing/tests/data/pass/ndarray_misc.py | 11 | ||||
-rw-r--r-- | numpy/typing/tests/data/pass/scalars.py | 16 | ||||
-rw-r--r-- | numpy/typing/tests/data/reveal/ndarray_misc.py | 165 | ||||
-rw-r--r-- | numpy/typing/tests/data/reveal/scalars.py | 16 |
5 files changed, 127 insertions, 85 deletions
diff --git a/numpy/typing/tests/data/fail/fromnumeric.py b/numpy/typing/tests/data/fail/fromnumeric.py index d8f7a5d69..8fafed1b7 100644 --- a/numpy/typing/tests/data/fail/fromnumeric.py +++ b/numpy/typing/tests/data/fail/fromnumeric.py @@ -117,13 +117,13 @@ 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.amax(a, where=[1.0]) # E: incompatible 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.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 diff --git a/numpy/typing/tests/data/pass/ndarray_misc.py b/numpy/typing/tests/data/pass/ndarray_misc.py index 6c6f5d50b..ba10ce974 100644 --- a/numpy/typing/tests/data/pass/ndarray_misc.py +++ b/numpy/typing/tests/data/pass/ndarray_misc.py @@ -6,17 +6,19 @@ function-based counterpart in `../from_numeric.py`. """ -from typing import cast +from __future__ import annotations + +from typing import cast, Any import numpy as np class SubClass(np.ndarray): ... i4 = np.int32(1) -A = np.array([[1]], dtype=np.int32) +A: np.ndarray[Any, np.dtype[np.int32]] = np.array([[1]], dtype=np.int32) B0 = np.empty((), dtype=np.int32).view(SubClass) B1 = np.empty((1,), dtype=np.int32).view(SubClass) B2 = np.empty((1, 1), dtype=np.int32).view(SubClass) -C = np.array([0, 1, 2], dtype=np.int32) +C: np.ndarray[Any, np.dtype[np.int32]] = np.array([0, 1, 2], dtype=np.int32) D = np.empty(3).view(SubClass) i4.all() @@ -157,3 +159,6 @@ A.trace(out=B0) void = cast(np.void, np.array(1, dtype=[("f", np.float64)]).take(0)) void.setfield(10, np.float64) + +A.item(0) +C.item(0) diff --git a/numpy/typing/tests/data/pass/scalars.py b/numpy/typing/tests/data/pass/scalars.py index 815566b68..f7965e1c5 100644 --- a/numpy/typing/tests/data/pass/scalars.py +++ b/numpy/typing/tests/data/pass/scalars.py @@ -204,3 +204,19 @@ np.cfloat() np.clongdouble() np.clongfloat() np.longcomplex() + +np.bool_().item() +np.int_().item() +np.uint64().item() +np.float32().item() +np.complex128().item() +np.str_().item() +np.bytes_().item() + +np.bool_().tolist() +np.int_().tolist() +np.uint64().tolist() +np.float32().tolist() +np.complex128().tolist() +np.str_().tolist() +np.bytes_().tolist() diff --git a/numpy/typing/tests/data/reveal/ndarray_misc.py b/numpy/typing/tests/data/reveal/ndarray_misc.py index e0f44bcbc..8c45eb6f3 100644 --- a/numpy/typing/tests/data/reveal/ndarray_misc.py +++ b/numpy/typing/tests/data/reveal/ndarray_misc.py @@ -6,145 +6,150 @@ function-based counterpart in `../from_numeric.py`. """ +from typing import Any import numpy as np class SubClass(np.ndarray): ... f8: np.float64 -A: np.ndarray +AR_f8: np.ndarray[Any, np.dtype[np.float64]] B: SubClass +AR_U: np.ndarray[Any, np.dtype[np.str_]] reveal_type(f8.all()) # E: numpy.bool_ -reveal_type(A.all()) # E: numpy.bool_ -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(AR_f8.all()) # E: numpy.bool_ +reveal_type(AR_f8.all(axis=0)) # E: Any +reveal_type(AR_f8.all(keepdims=True)) # E: Any +reveal_type(AR_f8.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: Any -reveal_type(A.any(keepdims=True)) # E: Any -reveal_type(A.any(out=B)) # E: SubClass +reveal_type(AR_f8.any()) # E: numpy.bool_ +reveal_type(AR_f8.any(axis=0)) # E: Any +reveal_type(AR_f8.any(keepdims=True)) # E: Any +reveal_type(AR_f8.any(out=B)) # E: SubClass reveal_type(f8.argmax()) # E: {intp} -reveal_type(A.argmax()) # E: {intp} -reveal_type(A.argmax(axis=0)) # E: Any -reveal_type(A.argmax(out=B)) # E: SubClass +reveal_type(AR_f8.argmax()) # E: {intp} +reveal_type(AR_f8.argmax(axis=0)) # E: Any +reveal_type(AR_f8.argmax(out=B)) # E: SubClass reveal_type(f8.argmin()) # E: {intp} -reveal_type(A.argmin()) # E: {intp} -reveal_type(A.argmin(axis=0)) # E: Any -reveal_type(A.argmin(out=B)) # E: SubClass +reveal_type(AR_f8.argmin()) # E: {intp} +reveal_type(AR_f8.argmin(axis=0)) # E: Any +reveal_type(AR_f8.argmin(out=B)) # E: SubClass reveal_type(f8.argsort()) # E: numpy.ndarray[Any, Any] -reveal_type(A.argsort()) # E: numpy.ndarray[Any, Any] +reveal_type(AR_f8.argsort()) # E: numpy.ndarray[Any, Any] reveal_type(f8.astype(np.int64).choose([()])) # E: numpy.ndarray[Any, Any] -reveal_type(A.choose([0])) # E: numpy.ndarray[Any, Any] -reveal_type(A.choose([0], out=B)) # E: SubClass +reveal_type(AR_f8.choose([0])) # E: numpy.ndarray[Any, Any] +reveal_type(AR_f8.choose([0], out=B)) # E: SubClass 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 +reveal_type(AR_f8.clip(1)) # E: Any +reveal_type(AR_f8.clip(None, 1)) # E: Any +reveal_type(AR_f8.clip(1, out=B)) # E: SubClass +reveal_type(AR_f8.clip(None, 1, out=B)) # E: SubClass reveal_type(f8.compress([0])) # E: numpy.ndarray[Any, Any] -reveal_type(A.compress([0])) # E: numpy.ndarray[Any, Any] -reveal_type(A.compress([0], out=B)) # E: SubClass +reveal_type(AR_f8.compress([0])) # E: numpy.ndarray[Any, Any] +reveal_type(AR_f8.compress([0], out=B)) # E: SubClass reveal_type(f8.conj()) # E: {float64} -reveal_type(A.conj()) # E: numpy.ndarray[Any, Any] +reveal_type(AR_f8.conj()) # E: numpy.ndarray[Any, numpy.dtype[{float64}]] reveal_type(B.conj()) # E: SubClass reveal_type(f8.conjugate()) # E: {float64} -reveal_type(A.conjugate()) # E: numpy.ndarray[Any, Any] +reveal_type(AR_f8.conjugate()) # E: numpy.ndarray[Any, numpy.dtype[{float64}]] reveal_type(B.conjugate()) # E: SubClass reveal_type(f8.cumprod()) # E: numpy.ndarray[Any, Any] -reveal_type(A.cumprod()) # E: numpy.ndarray[Any, Any] -reveal_type(A.cumprod(out=B)) # E: SubClass +reveal_type(AR_f8.cumprod()) # E: numpy.ndarray[Any, Any] +reveal_type(AR_f8.cumprod(out=B)) # E: SubClass reveal_type(f8.cumsum()) # E: numpy.ndarray[Any, Any] -reveal_type(A.cumsum()) # E: numpy.ndarray[Any, Any] -reveal_type(A.cumsum(out=B)) # E: SubClass +reveal_type(AR_f8.cumsum()) # E: numpy.ndarray[Any, Any] +reveal_type(AR_f8.cumsum(out=B)) # E: SubClass 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(AR_f8.max()) # E: Any +reveal_type(AR_f8.max(axis=0)) # E: Any +reveal_type(AR_f8.max(keepdims=True)) # E: Any +reveal_type(AR_f8.max(out=B)) # E: SubClass 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(AR_f8.mean()) # E: Any +reveal_type(AR_f8.mean(axis=0)) # E: Any +reveal_type(AR_f8.mean(keepdims=True)) # E: Any +reveal_type(AR_f8.mean(out=B)) # E: SubClass 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(AR_f8.min()) # E: Any +reveal_type(AR_f8.min(axis=0)) # E: Any +reveal_type(AR_f8.min(keepdims=True)) # E: Any +reveal_type(AR_f8.min(out=B)) # E: SubClass reveal_type(f8.newbyteorder()) # E: {float64} -reveal_type(A.newbyteorder()) # E: numpy.ndarray[Any, Any] +reveal_type(AR_f8.newbyteorder()) # E: numpy.ndarray[Any, numpy.dtype[{float64}]] reveal_type(B.newbyteorder('|')) # E: SubClass 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(AR_f8.prod()) # E: Any +reveal_type(AR_f8.prod(axis=0)) # E: Any +reveal_type(AR_f8.prod(keepdims=True)) # E: Any +reveal_type(AR_f8.prod(out=B)) # E: SubClass 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(AR_f8.ptp()) # E: Any +reveal_type(AR_f8.ptp(axis=0)) # E: Any +reveal_type(AR_f8.ptp(keepdims=True)) # E: Any +reveal_type(AR_f8.ptp(out=B)) # E: SubClass reveal_type(f8.round()) # E: {float64} -reveal_type(A.round()) # E: numpy.ndarray[Any, Any] -reveal_type(A.round(out=B)) # E: SubClass +reveal_type(AR_f8.round()) # E: numpy.ndarray[Any, numpy.dtype[{float64}]] +reveal_type(AR_f8.round(out=B)) # E: SubClass -reveal_type(f8.repeat(1)) # E: numpy.ndarray[Any, Any] -reveal_type(A.repeat(1)) # E: numpy.ndarray[Any, Any] +reveal_type(f8.repeat(1)) # E: numpy.ndarray[Any, numpy.dtype[{float64}]] +reveal_type(AR_f8.repeat(1)) # E: numpy.ndarray[Any, numpy.dtype[{float64}]] reveal_type(B.repeat(1)) # E: numpy.ndarray[Any, Any] 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(AR_f8.std()) # E: Any +reveal_type(AR_f8.std(axis=0)) # E: Any +reveal_type(AR_f8.std(keepdims=True)) # E: Any +reveal_type(AR_f8.std(out=B)) # E: SubClass 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(AR_f8.sum()) # E: Any +reveal_type(AR_f8.sum(axis=0)) # E: Any +reveal_type(AR_f8.sum(keepdims=True)) # E: Any +reveal_type(AR_f8.sum(out=B)) # E: SubClass -reveal_type(f8.take(0)) # E: Any -reveal_type(A.take(0)) # E: Any -reveal_type(A.take([0])) # E: numpy.ndarray[Any, Any] -reveal_type(A.take(0, out=B)) # E: SubClass -reveal_type(A.take([0], out=B)) # E: SubClass +reveal_type(f8.take(0)) # E: {float64} +reveal_type(AR_f8.take(0)) # E: {float64} +reveal_type(AR_f8.take([0])) # E: numpy.ndarray[Any, numpy.dtype[{float64}]] +reveal_type(AR_f8.take(0, out=B)) # E: SubClass +reveal_type(AR_f8.take([0], out=B)) # E: SubClass 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(AR_f8.var()) # E: Any +reveal_type(AR_f8.var(axis=0)) # E: Any +reveal_type(AR_f8.var(keepdims=True)) # E: Any +reveal_type(AR_f8.var(out=B)) # E: SubClass -reveal_type(A.argpartition([0])) # E: numpy.ndarray[Any, Any] +reveal_type(AR_f8.argpartition([0])) # E: numpy.ndarray[Any, Any] -reveal_type(A.diagonal()) # E: numpy.ndarray[Any, Any] +reveal_type(AR_f8.diagonal()) # E: numpy.ndarray[Any, numpy.dtype[{float64}]] -reveal_type(A.dot(1)) # E: Any -reveal_type(A.dot(1, out=B)) # E: SubClass +reveal_type(AR_f8.dot(1)) # E: Any +reveal_type(AR_f8.dot(1, out=B)) # E: SubClass -reveal_type(A.nonzero()) # E: tuple[numpy.ndarray[Any, Any]] +reveal_type(AR_f8.nonzero()) # E: tuple[numpy.ndarray[Any, Any]] -reveal_type(A.searchsorted([1])) # E: numpy.ndarray[Any, Any] +reveal_type(AR_f8.searchsorted([1])) # E: numpy.ndarray[Any, Any] -reveal_type(A.trace()) # E: Any -reveal_type(A.trace(out=B)) # E: SubClass +reveal_type(AR_f8.trace()) # E: Any +reveal_type(AR_f8.trace(out=B)) # E: SubClass + +reveal_type(AR_f8.item()) # E: float +reveal_type(AR_U.item()) # E: str diff --git a/numpy/typing/tests/data/reveal/scalars.py b/numpy/typing/tests/data/reveal/scalars.py index fa94aa49b..f50c46c43 100644 --- a/numpy/typing/tests/data/reveal/scalars.py +++ b/numpy/typing/tests/data/reveal/scalars.py @@ -67,3 +67,19 @@ reveal_type(np.cfloat()) # E: {cdouble} reveal_type(np.clongdouble()) # E: {clongdouble} reveal_type(np.clongfloat()) # E: {clongdouble} reveal_type(np.longcomplex()) # E: {clongdouble} + +reveal_type(np.bool_().item()) # E: bool +reveal_type(np.int_().item()) # E: int +reveal_type(np.uint64().item()) # E: int +reveal_type(np.float32().item()) # E: float +reveal_type(np.complex128().item()) # E: complex +reveal_type(np.str_().item()) # E: str +reveal_type(np.bytes_().item()) # E: bytes + +reveal_type(np.bool_().tolist()) # E: bool +reveal_type(np.int_().tolist()) # E: int +reveal_type(np.uint64().tolist()) # E: int +reveal_type(np.float32().tolist()) # E: float +reveal_type(np.complex128().tolist()) # E: complex +reveal_type(np.str_().tolist()) # E: str +reveal_type(np.bytes_().tolist()) # E: bytes |