Thanks to visit codestin.com
Credit goes to github.com

Skip to content

TYP: Better ndarray binop return types for float64 & complex128 #28108

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
491 changes: 358 additions & 133 deletions numpy/__init__.pyi

Large diffs are not rendered by default.

8 changes: 5 additions & 3 deletions numpy/_typing/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -121,15 +121,14 @@
NDArray as NDArray,
ArrayLike as ArrayLike,
_ArrayLike as _ArrayLike,
_FiniteNestedSequence as _FiniteNestedSequence,
_SupportsArray as _SupportsArray,
_SupportsArrayFunc as _SupportsArrayFunc,
_ArrayLikeInt as _ArrayLikeInt,
_ArrayLikeBool_co as _ArrayLikeBool_co,
_ArrayLikeUInt_co as _ArrayLikeUInt_co,
_ArrayLikeInt_co as _ArrayLikeInt_co,
_ArrayLikeFloat_co as _ArrayLikeFloat_co,
_ArrayLikeFloat64_co as _ArrayLikeFloat64_co,
_ArrayLikeComplex_co as _ArrayLikeComplex_co,
_ArrayLikeComplex128_co as _ArrayLikeComplex128_co,
_ArrayLikeNumber_co as _ArrayLikeNumber_co,
_ArrayLikeTD64_co as _ArrayLikeTD64_co,
_ArrayLikeDT64_co as _ArrayLikeDT64_co,
Expand All @@ -140,6 +139,9 @@
_ArrayLikeString_co as _ArrayLikeString_co,
_ArrayLikeAnyString_co as _ArrayLikeAnyString_co,
_ArrayLikeUnknown as _ArrayLikeUnknown,
_FiniteNestedSequence as _FiniteNestedSequence,
_SupportsArray as _SupportsArray,
_SupportsArrayFunc as _SupportsArrayFunc,
_UnknownType as _UnknownType,
)

Expand Down
6 changes: 6 additions & 0 deletions numpy/_typing/_array_like.py
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@
str_,
bytes_,
)
from ._nbit_base import _32Bit, _64Bit
from ._nested_sequence import _NestedSequence
from ._shape import _Shape

Expand Down Expand Up @@ -164,6 +165,11 @@ def __buffer__(self, flags: int, /) -> memoryview: ...
_ArrayLikeString_co
)

__Float64_co: TypeAlias = np.floating[_64Bit] | np.float32 | np.float16 | np.integer | np.bool
__Complex128_co: TypeAlias = np.number[_64Bit] | np.number[_32Bit] | np.float16 | np.integer | np.bool
_ArrayLikeFloat64_co: TypeAlias = _DualArrayLike[dtype[__Float64_co], float | int]
_ArrayLikeComplex128_co: TypeAlias = _DualArrayLike[dtype[__Complex128_co], complex | float | int]

# NOTE: This includes `builtins.bool`, but not `numpy.bool`.
_ArrayLikeInt: TypeAlias = _DualArrayLike[
dtype[integer[Any]],
Expand Down
116 changes: 61 additions & 55 deletions numpy/typing/tests/data/reveal/arithmetic.pyi
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,7 @@ AR_m: npt.NDArray[np.timedelta64]
AR_M: npt.NDArray[np.datetime64]
AR_O: npt.NDArray[np.object_]
AR_number: npt.NDArray[np.number[Any]]
AR_Any: npt.NDArray[Any]

AR_LIKE_b: list[bool]
AR_LIKE_u: list[np.uint32]
Expand All @@ -61,34 +62,35 @@ AR_LIKE_m: list[np.timedelta64]
AR_LIKE_M: list[np.datetime64]
AR_LIKE_O: list[np.object_]


# Array subtraction

assert_type(AR_number - AR_number, npt.NDArray[np.number[Any]])

assert_type(AR_b - AR_LIKE_u, npt.NDArray[np.unsignedinteger[Any]])
assert_type(AR_b - AR_LIKE_u, npt.NDArray[np.uint32])
assert_type(AR_b - AR_LIKE_i, npt.NDArray[np.signedinteger[Any]])
assert_type(AR_b - AR_LIKE_f, npt.NDArray[np.floating[Any]])
assert_type(AR_b - AR_LIKE_c, npt.NDArray[np.complexfloating[Any, Any]])
assert_type(AR_b - AR_LIKE_m, npt.NDArray[np.timedelta64])
assert_type(AR_b - AR_LIKE_O, Any)

assert_type(AR_LIKE_u - AR_b, npt.NDArray[np.unsignedinteger[Any]])
assert_type(AR_LIKE_u - AR_b, npt.NDArray[np.uint32])
assert_type(AR_LIKE_i - AR_b, npt.NDArray[np.signedinteger[Any]])
assert_type(AR_LIKE_f - AR_b, npt.NDArray[np.floating[Any]])
assert_type(AR_LIKE_c - AR_b, npt.NDArray[np.complexfloating[Any, Any]])
assert_type(AR_LIKE_m - AR_b, npt.NDArray[np.timedelta64])
assert_type(AR_LIKE_M - AR_b, npt.NDArray[np.datetime64])
assert_type(AR_LIKE_O - AR_b, Any)

assert_type(AR_u - AR_LIKE_b, npt.NDArray[np.unsignedinteger[Any]])
assert_type(AR_u - AR_LIKE_b, npt.NDArray[np.uint32])
assert_type(AR_u - AR_LIKE_u, npt.NDArray[np.unsignedinteger[Any]])
assert_type(AR_u - AR_LIKE_i, npt.NDArray[np.signedinteger[Any]])
assert_type(AR_u - AR_LIKE_f, npt.NDArray[np.floating[Any]])
assert_type(AR_u - AR_LIKE_c, npt.NDArray[np.complexfloating[Any, Any]])
assert_type(AR_u - AR_LIKE_m, npt.NDArray[np.timedelta64])
assert_type(AR_u - AR_LIKE_O, Any)

assert_type(AR_LIKE_b - AR_u, npt.NDArray[np.unsignedinteger[Any]])
assert_type(AR_LIKE_b - AR_u, npt.NDArray[np.uint32])
assert_type(AR_LIKE_u - AR_u, npt.NDArray[np.unsignedinteger[Any]])
assert_type(AR_LIKE_i - AR_u, npt.NDArray[np.signedinteger[Any]])
assert_type(AR_LIKE_f - AR_u, npt.NDArray[np.floating[Any]])
Expand All @@ -97,15 +99,15 @@ assert_type(AR_LIKE_m - AR_u, npt.NDArray[np.timedelta64])
assert_type(AR_LIKE_M - AR_u, npt.NDArray[np.datetime64])
assert_type(AR_LIKE_O - AR_u, Any)

assert_type(AR_i - AR_LIKE_b, npt.NDArray[np.signedinteger[Any]])
assert_type(AR_i - AR_LIKE_b, npt.NDArray[np.int64])
assert_type(AR_i - AR_LIKE_u, npt.NDArray[np.signedinteger[Any]])
assert_type(AR_i - AR_LIKE_i, npt.NDArray[np.signedinteger[Any]])
assert_type(AR_i - AR_LIKE_f, npt.NDArray[np.floating[Any]])
assert_type(AR_i - AR_LIKE_c, npt.NDArray[np.complexfloating[Any, Any]])
assert_type(AR_i - AR_LIKE_m, npt.NDArray[np.timedelta64])
assert_type(AR_i - AR_LIKE_O, Any)

assert_type(AR_LIKE_b - AR_i, npt.NDArray[np.signedinteger[Any]])
assert_type(AR_LIKE_b - AR_i, npt.NDArray[np.int64])
assert_type(AR_LIKE_u - AR_i, npt.NDArray[np.signedinteger[Any]])
assert_type(AR_LIKE_i - AR_i, npt.NDArray[np.signedinteger[Any]])
assert_type(AR_LIKE_f - AR_i, npt.NDArray[np.floating[Any]])
Expand All @@ -114,32 +116,32 @@ assert_type(AR_LIKE_m - AR_i, npt.NDArray[np.timedelta64])
assert_type(AR_LIKE_M - AR_i, npt.NDArray[np.datetime64])
assert_type(AR_LIKE_O - AR_i, Any)

assert_type(AR_f - AR_LIKE_b, npt.NDArray[np.floating[Any]])
assert_type(AR_f - AR_LIKE_u, npt.NDArray[np.floating[Any]])
assert_type(AR_f - AR_LIKE_i, npt.NDArray[np.floating[Any]])
assert_type(AR_f - AR_LIKE_f, npt.NDArray[np.floating[Any]])
assert_type(AR_f - AR_LIKE_b, npt.NDArray[np.float64])
assert_type(AR_f - AR_LIKE_u, npt.NDArray[np.float64])
assert_type(AR_f - AR_LIKE_i, npt.NDArray[np.float64])
assert_type(AR_f - AR_LIKE_f, npt.NDArray[np.float64])
assert_type(AR_f - AR_LIKE_c, npt.NDArray[np.complexfloating[Any, Any]])
assert_type(AR_f - AR_LIKE_O, Any)

assert_type(AR_LIKE_b - AR_f, npt.NDArray[np.floating[Any]])
assert_type(AR_LIKE_u - AR_f, npt.NDArray[np.floating[Any]])
assert_type(AR_LIKE_i - AR_f, npt.NDArray[np.floating[Any]])
assert_type(AR_LIKE_f - AR_f, npt.NDArray[np.floating[Any]])
assert_type(AR_LIKE_b - AR_f, npt.NDArray[np.float64])
assert_type(AR_LIKE_u - AR_f, npt.NDArray[np.float64])
assert_type(AR_LIKE_i - AR_f, npt.NDArray[np.float64])
assert_type(AR_LIKE_f - AR_f, npt.NDArray[np.float64])
assert_type(AR_LIKE_c - AR_f, npt.NDArray[np.complexfloating[Any, Any]])
assert_type(AR_LIKE_O - AR_f, Any)

assert_type(AR_c - AR_LIKE_b, npt.NDArray[np.complexfloating[Any, Any]])
assert_type(AR_c - AR_LIKE_u, npt.NDArray[np.complexfloating[Any, Any]])
assert_type(AR_c - AR_LIKE_i, npt.NDArray[np.complexfloating[Any, Any]])
assert_type(AR_c - AR_LIKE_f, npt.NDArray[np.complexfloating[Any, Any]])
assert_type(AR_c - AR_LIKE_c, npt.NDArray[np.complexfloating[Any, Any]])
assert_type(AR_c - AR_LIKE_b, npt.NDArray[np.complex128])
assert_type(AR_c - AR_LIKE_u, npt.NDArray[np.complex128])
assert_type(AR_c - AR_LIKE_i, npt.NDArray[np.complex128])
assert_type(AR_c - AR_LIKE_f, npt.NDArray[np.complex128])
assert_type(AR_c - AR_LIKE_c, npt.NDArray[np.complex128])
assert_type(AR_c - AR_LIKE_O, Any)

assert_type(AR_LIKE_b - AR_c, npt.NDArray[np.complexfloating[Any, Any]])
assert_type(AR_LIKE_u - AR_c, npt.NDArray[np.complexfloating[Any, Any]])
assert_type(AR_LIKE_i - AR_c, npt.NDArray[np.complexfloating[Any, Any]])
assert_type(AR_LIKE_f - AR_c, npt.NDArray[np.complexfloating[Any, Any]])
assert_type(AR_LIKE_c - AR_c, npt.NDArray[np.complexfloating[Any, Any]])
assert_type(AR_LIKE_b - AR_c, npt.NDArray[np.complex128])
assert_type(AR_LIKE_u - AR_c, npt.NDArray[np.complex128])
assert_type(AR_LIKE_i - AR_c, npt.NDArray[np.complex128])
assert_type(AR_LIKE_f - AR_c, npt.NDArray[np.complex128])
assert_type(AR_LIKE_c - AR_c, npt.NDArray[np.complex128])
assert_type(AR_LIKE_O - AR_c, Any)

assert_type(AR_m - AR_LIKE_b, npt.NDArray[np.timedelta64])
Expand Down Expand Up @@ -186,53 +188,53 @@ assert_type(AR_LIKE_O - AR_O, Any)
# Array floor division

assert_type(AR_b // AR_LIKE_b, npt.NDArray[np.int8])
assert_type(AR_b // AR_LIKE_u, npt.NDArray[np.unsignedinteger[Any]])
assert_type(AR_b // AR_LIKE_u, npt.NDArray[np.uint32])
assert_type(AR_b // AR_LIKE_i, npt.NDArray[np.signedinteger[Any]])
assert_type(AR_b // AR_LIKE_f, npt.NDArray[np.floating[Any]])
assert_type(AR_b // AR_LIKE_O, Any)

assert_type(AR_LIKE_b // AR_b, npt.NDArray[np.int8])
assert_type(AR_LIKE_u // AR_b, npt.NDArray[np.unsignedinteger[Any]])
assert_type(AR_LIKE_u // AR_b, npt.NDArray[np.uint32])
assert_type(AR_LIKE_i // AR_b, npt.NDArray[np.signedinteger[Any]])
assert_type(AR_LIKE_f // AR_b, npt.NDArray[np.floating[Any]])
assert_type(AR_LIKE_O // AR_b, Any)

assert_type(AR_u // AR_LIKE_b, npt.NDArray[np.unsignedinteger[Any]])
assert_type(AR_u // AR_LIKE_b, npt.NDArray[np.uint32])
assert_type(AR_u // AR_LIKE_u, npt.NDArray[np.unsignedinteger[Any]])
assert_type(AR_u // AR_LIKE_i, npt.NDArray[np.signedinteger[Any]])
assert_type(AR_u // AR_LIKE_f, npt.NDArray[np.floating[Any]])
assert_type(AR_u // AR_LIKE_O, Any)

assert_type(AR_LIKE_b // AR_u, npt.NDArray[np.unsignedinteger[Any]])
assert_type(AR_LIKE_b // AR_u, npt.NDArray[np.uint32])
assert_type(AR_LIKE_u // AR_u, npt.NDArray[np.unsignedinteger[Any]])
assert_type(AR_LIKE_i // AR_u, npt.NDArray[np.signedinteger[Any]])
assert_type(AR_LIKE_f // AR_u, npt.NDArray[np.floating[Any]])
assert_type(AR_LIKE_m // AR_u, npt.NDArray[np.timedelta64])
assert_type(AR_LIKE_O // AR_u, Any)

assert_type(AR_i // AR_LIKE_b, npt.NDArray[np.signedinteger[Any]])
assert_type(AR_i // AR_LIKE_b, npt.NDArray[np.int64])
assert_type(AR_i // AR_LIKE_u, npt.NDArray[np.signedinteger[Any]])
assert_type(AR_i // AR_LIKE_i, npt.NDArray[np.signedinteger[Any]])
assert_type(AR_i // AR_LIKE_f, npt.NDArray[np.floating[Any]])
assert_type(AR_i // AR_LIKE_O, Any)

assert_type(AR_LIKE_b // AR_i, npt.NDArray[np.signedinteger[Any]])
assert_type(AR_LIKE_b // AR_i, npt.NDArray[np.int64])
assert_type(AR_LIKE_u // AR_i, npt.NDArray[np.signedinteger[Any]])
assert_type(AR_LIKE_i // AR_i, npt.NDArray[np.signedinteger[Any]])
assert_type(AR_LIKE_f // AR_i, npt.NDArray[np.floating[Any]])
assert_type(AR_LIKE_m // AR_i, npt.NDArray[np.timedelta64])
assert_type(AR_LIKE_O // AR_i, Any)

assert_type(AR_f // AR_LIKE_b, npt.NDArray[np.floating[Any]])
assert_type(AR_f // AR_LIKE_u, npt.NDArray[np.floating[Any]])
assert_type(AR_f // AR_LIKE_i, npt.NDArray[np.floating[Any]])
assert_type(AR_f // AR_LIKE_f, npt.NDArray[np.floating[Any]])
assert_type(AR_f // AR_LIKE_b, npt.NDArray[np.float64])
assert_type(AR_f // AR_LIKE_u, npt.NDArray[np.float64])
assert_type(AR_f // AR_LIKE_i, npt.NDArray[np.float64])
assert_type(AR_f // AR_LIKE_f, npt.NDArray[np.float64])
assert_type(AR_f // AR_LIKE_O, Any)

assert_type(AR_LIKE_b // AR_f, npt.NDArray[np.floating[Any]])
assert_type(AR_LIKE_u // AR_f, npt.NDArray[np.floating[Any]])
assert_type(AR_LIKE_i // AR_f, npt.NDArray[np.floating[Any]])
assert_type(AR_LIKE_f // AR_f, npt.NDArray[np.floating[Any]])
assert_type(AR_LIKE_b // AR_f, npt.NDArray[np.float64])
assert_type(AR_LIKE_u // AR_f, npt.NDArray[np.float64])
assert_type(AR_LIKE_i // AR_f, npt.NDArray[np.float64])
assert_type(AR_LIKE_f // AR_f, npt.NDArray[np.float64])
assert_type(AR_LIKE_m // AR_f, npt.NDArray[np.timedelta64])
assert_type(AR_LIKE_O // AR_f, Any)

Expand Down Expand Up @@ -407,7 +409,7 @@ assert_type(c16 + b_, np.complex128)
assert_type(c16 + b, np.complex128)
assert_type(c16 + c, np.complex128)
assert_type(c16 + f, np.complex128)
assert_type(c16 + AR_f, npt.NDArray[np.complexfloating[Any, Any]])
assert_type(c16 + AR_f, npt.NDArray[np.complex128])

assert_type(f16 + c16, np.complex128 | np.complexfloating[_128Bit, _128Bit])
assert_type(c16 + c16, np.complex128)
Expand All @@ -420,7 +422,7 @@ assert_type(b_ + c16, np.complex128)
assert_type(b + c16, np.complex128)
assert_type(c + c16, np.complex128)
assert_type(f + c16, np.complex128)
assert_type(AR_f + c16, npt.NDArray[np.complexfloating[Any, Any]])
assert_type(AR_f + c16, npt.NDArray[np.complex128])

assert_type(c8 + f16, np.complexfloating[_32Bit, _32Bit] | np.complexfloating[_128Bit, _128Bit])
assert_type(c8 + c16, np.complex64 | np.complex128)
Expand All @@ -433,7 +435,7 @@ assert_type(c8 + b_, np.complex64)
assert_type(c8 + b, np.complex64)
assert_type(c8 + c, np.complex64 | np.complex128)
assert_type(c8 + f, np.complex64 | np.complex128)
assert_type(c8 + AR_f, npt.NDArray[np.complexfloating[Any, Any]])
assert_type(c8 + AR_f, npt.NDArray[np.complexfloating])

assert_type(f16 + c8, np.complexfloating[_128Bit, _128Bit] | np.complex64)
assert_type(c16 + c8, np.complex128)
Expand All @@ -446,7 +448,7 @@ assert_type(b_ + c8, np.complex64)
assert_type(b + c8, np.complex64)
assert_type(c + c8, np.complex64 | np.complex128)
assert_type(f + c8, np.complex64 | np.complex128)
assert_type(AR_f + c8, npt.NDArray[np.complexfloating[Any, Any]])
assert_type(AR_f + c8, npt.NDArray[np.complexfloating])

# Float

Expand All @@ -459,18 +461,18 @@ assert_type(f8 + b_, np.float64)
assert_type(f8 + b, np.float64)
assert_type(f8 + c, np.float64 | np.complex128)
assert_type(f8 + f, np.float64)
assert_type(f8 + AR_f, npt.NDArray[np.floating[Any]])
assert_type(f8 + AR_f, npt.NDArray[np.float64])

assert_type(f16 + f8, np.floating[_128Bit] | np.float64)
assert_type(f8 + f8, np.float64)
assert_type(i8 + f8, np.float64)
assert_type(f4 + f8, np.floating[_32Bit] | np.float64)
assert_type(f4 + f8, np.float32 | np.float64)
assert_type(i4 + f8,np.float64)
assert_type(b_ + f8, np.float64)
assert_type(b + f8, np.float64)
assert_type(c + f8, np.complex128 | np.float64)
assert_type(f + f8, np.float64)
assert_type(AR_f + f8, npt.NDArray[np.floating[Any]])
assert_type(AR_f + f8, npt.NDArray[np.float64])

assert_type(f4 + f16, np.float32 | np.floating[_128Bit])
assert_type(f4 + f8, np.float32 | np.float64)
Expand All @@ -481,7 +483,7 @@ assert_type(f4 + b_, np.float32)
assert_type(f4 + b, np.float32)
assert_type(f4 + c, np.complex64 | np.complex128)
assert_type(f4 + f, np.float32 | np.float64)
assert_type(f4 + AR_f, npt.NDArray[np.floating[Any]])
assert_type(f4 + AR_f, npt.NDArray[np.float64])

assert_type(f16 + f4, np.floating[_128Bit] | np.float32)
assert_type(f8 + f4, np.float64)
Expand All @@ -492,7 +494,7 @@ assert_type(b_ + f4, np.float32)
assert_type(b + f4, np.float32)
assert_type(c + f4, np.complex64 | np.complex128)
assert_type(f + f4, np.float64 | np.float32)
assert_type(AR_f + f4, npt.NDArray[np.floating[Any]])
assert_type(AR_f + f4, npt.NDArray[np.float64])

# Int

Expand All @@ -504,7 +506,7 @@ assert_type(i8 + b_, np.int64)
assert_type(i8 + b, np.int64)
assert_type(i8 + c, np.complex128)
assert_type(i8 + f, np.float64)
assert_type(i8 + AR_f, npt.NDArray[np.floating[Any]])
assert_type(i8 + AR_f, npt.NDArray[np.float64])

assert_type(u8 + u8, np.uint64)
assert_type(u8 + i4, Any)
Expand All @@ -513,7 +515,7 @@ assert_type(u8 + b_, np.uint64)
assert_type(u8 + b, np.uint64)
assert_type(u8 + c, np.complex128)
assert_type(u8 + f, np.float64)
assert_type(u8 + AR_f, npt.NDArray[np.floating[Any]])
assert_type(u8 + AR_f, npt.NDArray[np.float64])

assert_type(i8 + i8, np.int64)
assert_type(u8 + i8, Any)
Expand All @@ -523,7 +525,7 @@ assert_type(b_ + i8, np.int64)
assert_type(b + i8, np.int64)
assert_type(c + i8, np.complex128)
assert_type(f + i8, np.float64)
assert_type(AR_f + i8, npt.NDArray[np.floating[Any]])
assert_type(AR_f + i8, npt.NDArray[np.float64])

assert_type(u8 + u8, np.uint64)
assert_type(i4 + u8, Any)
Expand All @@ -532,32 +534,36 @@ assert_type(b_ + u8, np.uint64)
assert_type(b + u8, np.uint64)
assert_type(c + u8, np.complex128)
assert_type(f + u8, np.float64)
assert_type(AR_f + u8, npt.NDArray[np.floating[Any]])
assert_type(AR_f + u8, npt.NDArray[np.float64])

assert_type(i4 + i8, np.signedinteger[_32Bit] | np.signedinteger[_64Bit])
assert_type(i4 + i4, np.int32)
assert_type(i4 + b_, np.int32)
assert_type(i4 + b, np.int32)
assert_type(i4 + AR_f, npt.NDArray[np.floating[Any]])
assert_type(i4 + AR_f, npt.NDArray[np.float64])

assert_type(u4 + i8, Any)
assert_type(u4 + i4, Any)
assert_type(u4 + u8, np.unsignedinteger[_32Bit] | np.unsignedinteger[_64Bit])
assert_type(u4 + u4, np.uint32)
assert_type(u4 + b_, np.uint32)
assert_type(u4 + b, np.uint32)
assert_type(u4 + AR_f, npt.NDArray[np.floating[Any]])
assert_type(u4 + AR_f, npt.NDArray[np.float64])

assert_type(i8 + i4, np.signedinteger[_32Bit] | np.signedinteger[_64Bit])
assert_type(i4 + i4, np.int32)
assert_type(b_ + i4, np.int32)
assert_type(b + i4, np.int32)
assert_type(AR_f + i4, npt.NDArray[np.floating[Any]])
assert_type(AR_f + i4, npt.NDArray[np.float64])

assert_type(i8 + u4, Any)
assert_type(i4 + u4, Any)
assert_type(u8 + u4, np.unsignedinteger[_32Bit] | np.unsignedinteger[_64Bit])
assert_type(u4 + u4, np.uint32)
assert_type(b_ + u4, np.uint32)
assert_type(b + u4, np.uint32)
assert_type(AR_f + u4, npt.NDArray[np.floating[Any]])
assert_type(AR_f + u4, npt.NDArray[np.float64])

# Any

assert_type(AR_Any + 2, npt.NDArray[Any])
14 changes: 0 additions & 14 deletions numpy/typing/tests/data/reveal/false_positives.pyi

This file was deleted.

Loading
Loading