summaryrefslogtreecommitdiff
path: root/numpy
diff options
context:
space:
mode:
authorBas van Beek <b.f.van.beek@vu.nl>2021-04-21 18:29:24 +0200
committerBas van Beek <b.f.van.beek@vu.nl>2021-04-30 22:09:51 +0200
commit5fad83954e41d33e2a6e27fd77f98975cc81caef (patch)
treed3c152651528bf1a2d0ab2dc436d4f74261deff9 /numpy
parent44c3e1f2ffbccaa5e0877deb282a0ce49ed04c35 (diff)
downloadnumpy-5fad83954e41d33e2a6e27fd77f98975cc81caef.tar.gz
MAINT: Remove unsafe unions from `np.lib.ufunclike`
Diffstat (limited to 'numpy')
-rw-r--r--numpy/lib/ufunclike.pyi28
-rw-r--r--numpy/typing/tests/data/reveal/ufunclike.py24
2 files changed, 34 insertions, 18 deletions
diff --git a/numpy/lib/ufunclike.pyi b/numpy/lib/ufunclike.pyi
index 3443fa7ae..e97383af8 100644
--- a/numpy/lib/ufunclike.pyi
+++ b/numpy/lib/ufunclike.pyi
@@ -1,10 +1,11 @@
from typing import Any, overload, TypeVar, List, Union
-from numpy import floating, bool_, ndarray
+from numpy import floating, bool_, object_, ndarray
from numpy.typing import (
+ _ArrayND,
+ _FloatLike_co,
_ArrayLikeFloat_co,
_ArrayLikeObject_co,
- _ArrayOrScalar,
)
_ArrayType = TypeVar("_ArrayType", bound=ndarray[Any, Any])
@@ -12,15 +13,20 @@ _ArrayType = TypeVar("_ArrayType", bound=ndarray[Any, Any])
__all__: List[str]
@overload
+def fix( # type: ignore[misc]
+ x: _FloatLike_co,
+ out: None = ...,
+) -> floating[Any]: ...
+@overload
def fix(
x: _ArrayLikeFloat_co,
out: None = ...,
-) -> _ArrayOrScalar[floating[Any]]: ...
+) -> _ArrayND[floating[Any]]: ...
@overload
def fix(
x: _ArrayLikeObject_co,
out: None = ...,
-) -> Any: ...
+) -> _ArrayND[object_]: ...
@overload
def fix(
x: Union[_ArrayLikeFloat_co, _ArrayLikeObject_co],
@@ -28,10 +34,15 @@ def fix(
) -> _ArrayType: ...
@overload
+def isposinf( # type: ignore[misc]
+ x: _FloatLike_co,
+ out: None = ...,
+) -> bool_: ...
+@overload
def isposinf(
x: _ArrayLikeFloat_co,
out: None = ...,
-) -> _ArrayOrScalar[bool_]: ...
+) -> _ArrayND[bool_]: ...
@overload
def isposinf(
x: _ArrayLikeFloat_co,
@@ -39,10 +50,15 @@ def isposinf(
) -> _ArrayType: ...
@overload
+def isneginf( # type: ignore[misc]
+ x: _FloatLike_co,
+ out: None = ...,
+) -> bool_: ...
+@overload
def isneginf(
x: _ArrayLikeFloat_co,
out: None = ...,
-) -> _ArrayOrScalar[bool_]: ...
+) -> _ArrayND[bool_]: ...
@overload
def isneginf(
x: _ArrayLikeFloat_co,
diff --git a/numpy/typing/tests/data/reveal/ufunclike.py b/numpy/typing/tests/data/reveal/ufunclike.py
index 35e45a824..8b3aea7ce 100644
--- a/numpy/typing/tests/data/reveal/ufunclike.py
+++ b/numpy/typing/tests/data/reveal/ufunclike.py
@@ -9,21 +9,21 @@ AR_LIKE_O: List[np.object_]
AR_U: np.ndarray[Any, np.dtype[np.str_]]
-reveal_type(np.fix(AR_LIKE_b)) # E: Union[numpy.floating[Any], numpy.ndarray[Any, numpy.dtype[numpy.floating[Any]]]]
-reveal_type(np.fix(AR_LIKE_u)) # E: Union[numpy.floating[Any], numpy.ndarray[Any, numpy.dtype[numpy.floating[Any]]]]
-reveal_type(np.fix(AR_LIKE_i)) # E: Union[numpy.floating[Any], numpy.ndarray[Any, numpy.dtype[numpy.floating[Any]]]]
-reveal_type(np.fix(AR_LIKE_f)) # E: Union[numpy.floating[Any], numpy.ndarray[Any, numpy.dtype[numpy.floating[Any]]]]
+reveal_type(np.fix(AR_LIKE_b)) # E: numpy.ndarray[Any, numpy.dtype[numpy.floating[Any]]]
+reveal_type(np.fix(AR_LIKE_u)) # E: numpy.ndarray[Any, numpy.dtype[numpy.floating[Any]]]
+reveal_type(np.fix(AR_LIKE_i)) # E: numpy.ndarray[Any, numpy.dtype[numpy.floating[Any]]]
+reveal_type(np.fix(AR_LIKE_f)) # E: numpy.ndarray[Any, numpy.dtype[numpy.floating[Any]]]
reveal_type(np.fix(AR_LIKE_O)) # E: Any
reveal_type(np.fix(AR_LIKE_f, out=AR_U)) # E: numpy.ndarray[Any, numpy.dtype[numpy.str_]]
-reveal_type(np.isposinf(AR_LIKE_b)) # E: Union[numpy.bool_, numpy.ndarray[Any, numpy.dtype[numpy.bool_]]]
-reveal_type(np.isposinf(AR_LIKE_u)) # E: Union[numpy.bool_, numpy.ndarray[Any, numpy.dtype[numpy.bool_]]]
-reveal_type(np.isposinf(AR_LIKE_i)) # E: Union[numpy.bool_, numpy.ndarray[Any, numpy.dtype[numpy.bool_]]]
-reveal_type(np.isposinf(AR_LIKE_f)) # E: Union[numpy.bool_, numpy.ndarray[Any, numpy.dtype[numpy.bool_]]]
+reveal_type(np.isposinf(AR_LIKE_b)) # E: numpy.ndarray[Any, numpy.dtype[numpy.bool_]]
+reveal_type(np.isposinf(AR_LIKE_u)) # E: numpy.ndarray[Any, numpy.dtype[numpy.bool_]]
+reveal_type(np.isposinf(AR_LIKE_i)) # E: numpy.ndarray[Any, numpy.dtype[numpy.bool_]]
+reveal_type(np.isposinf(AR_LIKE_f)) # E: numpy.ndarray[Any, numpy.dtype[numpy.bool_]]
reveal_type(np.isposinf(AR_LIKE_f, out=AR_U)) # E: numpy.ndarray[Any, numpy.dtype[numpy.str_]]
-reveal_type(np.isneginf(AR_LIKE_b)) # E: Union[numpy.bool_, numpy.ndarray[Any, numpy.dtype[numpy.bool_]]]
-reveal_type(np.isneginf(AR_LIKE_u)) # E: Union[numpy.bool_, numpy.ndarray[Any, numpy.dtype[numpy.bool_]]]
-reveal_type(np.isneginf(AR_LIKE_i)) # E: Union[numpy.bool_, numpy.ndarray[Any, numpy.dtype[numpy.bool_]]]
-reveal_type(np.isneginf(AR_LIKE_f)) # E: Union[numpy.bool_, numpy.ndarray[Any, numpy.dtype[numpy.bool_]]]
+reveal_type(np.isneginf(AR_LIKE_b)) # E: numpy.ndarray[Any, numpy.dtype[numpy.bool_]]
+reveal_type(np.isneginf(AR_LIKE_u)) # E: numpy.ndarray[Any, numpy.dtype[numpy.bool_]]
+reveal_type(np.isneginf(AR_LIKE_i)) # E: numpy.ndarray[Any, numpy.dtype[numpy.bool_]]
+reveal_type(np.isneginf(AR_LIKE_f)) # E: numpy.ndarray[Any, numpy.dtype[numpy.bool_]]
reveal_type(np.isneginf(AR_LIKE_f, out=AR_U)) # E: numpy.ndarray[Any, numpy.dtype[numpy.str_]]