summaryrefslogtreecommitdiff
path: root/numpy
diff options
context:
space:
mode:
authorBas van Beek <b.f.van.beek@vu.nl>2021-04-21 18:19:12 +0200
committerBas van Beek <b.f.van.beek@vu.nl>2021-04-30 22:09:51 +0200
commit669826524248d15ea4f9383cf5a230685351f06c (patch)
tree9768ac05f60741bf3a6a43ab6bc570adc58b9862 /numpy
parentb1eaa4033d9a8a62d7789e112db6d74fe897d42b (diff)
downloadnumpy-669826524248d15ea4f9383cf5a230685351f06c.tar.gz
MAINT: Remove unsafe unions from `np.core.numeric`
Diffstat (limited to 'numpy')
-rw-r--r--numpy/core/numeric.pyi72
-rw-r--r--numpy/typing/tests/data/reveal/numeric.py10
2 files changed, 68 insertions, 14 deletions
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/tests/data/reveal/numeric.py b/numpy/typing/tests/data/reveal/numeric.py
index 78e5c1d61..ec6e47ca0 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[Any, Any]]
-reveal_type(np.count_nonzero(A, axis=0)) # E: Union[numpy.signedinteger[Any], numpy.ndarray[Any, Any]]
+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[Any, Any]]
-reveal_type(np.isclose(B, A)) # E: Union[numpy.bool_, numpy.ndarray[Any, Any]]
-reveal_type(np.isclose(A, A)) # E: Union[numpy.bool_, numpy.ndarray[Any, Any]]
+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