@@ -16,7 +16,7 @@ import numpy as np
1616from numpy import _CastingKind , _OrderKACF # noqa: ICN003
1717from numpy ._typing import _DTypeLikeBool , _NestedSequence
1818
19- from ._array_like import ArrayLike , NDArray , _ArrayLike , _ArrayLikeBool_co , _ArrayLikeInt_co , _ArrayLikeNumber_co
19+ from ._array_like import ArrayLike , NDArray , _ArrayLike , _ArrayLikeBool_co , _ArrayLikeInt_co , _ArrayLikeNumber_co , _ArrayLikeObject_co
2020from ._dtype_like import DTypeLike , _DTypeLike , _DTypeLikeObject
2121from ._scalars import _NumberLike_co , _ScalarLike_co
2222from ._shape import _ShapeLike
@@ -223,16 +223,16 @@ class _Call11Bool(Protocol):
223223 ) -> NDArray [np .bool ] | np .bool : ...
224224
225225@type_check_only
226- class _Call11LogicalNot (Protocol ):
226+ class _Call11Logical (Protocol ):
227227 @overload
228- def __call__ ( # (scalar, dtype: np.object_) -> np.object_
228+ def __call__ ( # (scalar, dtype: np.object_) -> np.bool
229229 self ,
230230 x : _NumberLike_co ,
231231 / ,
232- dtype : _DTypeLikeObject ,
232+ dtype : _DTypeLike [ np . object_ ] ,
233233 out : None = None ,
234234 ** kwargs : Unpack [_Kwargs2 ],
235- ) -> np .object_ : ...
235+ ) -> np .bool : ...
236236 @overload
237237 def __call__ ( # (scalar) -> bool
238238 self ,
@@ -247,10 +247,10 @@ class _Call11LogicalNot(Protocol):
247247 self ,
248248 x : _ArrayLikeNumber_co ,
249249 / ,
250- dtype : _DTypeLikeObject ,
250+ dtype : _DTypeLike [ np . object_ ] ,
251251 out : None = None ,
252252 ** kwargs : Unpack [_Kwargs2 ],
253- ) -> np .object_ : ...
253+ ) -> NDArray [ np .object_ ] | np . bool : ...
254254 @overload
255255 def __call__ ( # (array-like, out: T) -> T
256256 self ,
@@ -287,7 +287,7 @@ class _Call11LogicalNot(Protocol):
287287 out : _Out1 [_AnyArray ] | None = None ,
288288 dtype : DTypeLike | None = None ,
289289 ** kwargs : Unpack [_Kwargs2 ],
290- ) -> NDArray [ np . bool ] | np . bool : ...
290+ ) -> Any : ...
291291
292292class _Call12 (Protocol ):
293293 @overload
@@ -459,10 +459,10 @@ class _Call21Logical(Protocol):
459459 x1 : _NumberLike_co ,
460460 x2 : _NumberLike_co ,
461461 / ,
462- dtype : _DTypeLikeObject ,
462+ dtype : _DTypeLike [ np . object_ ] ,
463463 out : None = None ,
464464 ** kwds : Unpack [_Kwargs3 ],
465- ) -> np .object_ : ...
465+ ) -> np .bool : ...
466466 @overload # (scalar, scalar) -> bool
467467 def __call__ (
468468 self ,
@@ -473,46 +473,57 @@ class _Call21Logical(Protocol):
473473 dtype : DTypeLike | None = None ,
474474 ** kwds : Unpack [_Kwargs3 ],
475475 ) -> np .bool : ...
476- @overload # (array-like, array, dtype: np. object_) -> np. object_
476+ @overload # (array-like, array, dtype: object_) -> Array[ object_]
477477 def __call__ (
478478 self ,
479- x1 : _ArrayLikeNumber_co ,
479+ x1 : _ArrayLikeNumber_co | _ArrayLikeObject_co ,
480480 x2 : _AnyArray ,
481481 / ,
482- dtype : _DTypeLikeObject ,
482+ dtype : _DTypeLike [ np . object_ ] ,
483483 out : None = None ,
484484 ** kwds : Unpack [_Kwargs3 ],
485- ) -> np .object_ : ...
485+ ) -> NDArray [ np .object_ ] : ...
486486 @overload # (array-like, array, dtype: dtype[T]) -> Array[T]
487487 def __call__ (
488488 self ,
489489 x1 : _ArrayLikeNumber_co ,
490- x2 : _AnyArray ,
490+ x2 : NDArray [ np . bool | np . number ] ,
491491 / ,
492492 out : None = None ,
493493 dtype : DTypeLike | None = None ,
494494 ** kwds : Unpack [_Kwargs3 ],
495- ) -> NDArray [np .bool ]: ...
496- @overload # (array, array-like, dtype: np. object_) -> np. object_
495+ ) -> NDArray [np .bool | np . object_ ]: ...
496+ @overload # (array, array-like, dtype: object_) -> Array[ object_]
497497 def __call__ (
498498 self ,
499499 x1 : _AnyArray ,
500- x2 : _ArrayLikeNumber_co ,
500+ x2 : _ArrayLikeNumber_co | _ArrayLikeObject_co ,
501501 / ,
502- dtype : _DTypeLikeObject ,
502+ dtype : _DTypeLike [ np . object_ ] ,
503503 out : None = None ,
504504 ** kwds : Unpack [_Kwargs3 ],
505- ) -> np .object_ : ...
505+ ) -> NDArray [ np .object_ ] : ...
506506 @overload # (array, array-like, dtype: dtype[T]) -> Array[T]
507507 def __call__ (
508508 self ,
509- x1 : _AnyArray ,
509+ x1 : NDArray [ np . bool | np . number ] ,
510510 x2 : _ArrayLikeNumber_co ,
511511 / ,
512512 out : None = None ,
513513 dtype : DTypeLike | None = None ,
514514 ** kwds : Unpack [_Kwargs3 ],
515515 ) -> NDArray [np .bool ]: ...
516+ @overload # (array-like, array-like, out: T) -> T
517+ def __call__ (
518+ self ,
519+ x1 : _ArrayLikeNumber_co ,
520+ x2 : _ArrayLikeNumber_co ,
521+ / ,
522+ out : _Out1 [_ArrayT ],
523+ * ,
524+ dtype : None = None ,
525+ ** kwds : Unpack [_Kwargs3 ],
526+ ) -> _ArrayT : ...
516527 @overload # (array-like, array) -> Array[?]
517528 def __call__ (
518529 self ,
@@ -523,7 +534,7 @@ class _Call21Logical(Protocol):
523534 * ,
524535 dtype : DTypeLike | None = None ,
525536 ** kwds : Unpack [_Kwargs3 ],
526- ) -> NDArray [np .bool ]: ...
537+ ) -> NDArray [np .bool | np . object_ ]: ...
527538 @overload # (array, array-like) -> Array[?]
528539 def __call__ (
529540 self ,
@@ -535,17 +546,6 @@ class _Call21Logical(Protocol):
535546 dtype : DTypeLike | None = None ,
536547 ** kwds : Unpack [_Kwargs3 ],
537548 ) -> NDArray [np .bool ]: ...
538- @overload # (array-like, array-like, out: T) -> T
539- def __call__ (
540- self ,
541- x1 : _ArrayLikeNumber_co ,
542- x2 : ArrayLike ,
543- / ,
544- out : _ArrayT | tuple [_ArrayT ],
545- * ,
546- dtype : None = None ,
547- ** kwds : Unpack [_Kwargs3 ],
548- ) -> _ArrayT : ...
549549 @overload # (array-like, array-like) -> Array[?] | ?
550550 def __call__ (
551551 self ,
@@ -556,7 +556,7 @@ class _Call21Logical(Protocol):
556556 * ,
557557 dtype : DTypeLike | None = None ,
558558 ** kwds : Unpack [_Kwargs3 ],
559- ) -> NDArray [ np . bool ] | np . bool : ...
559+ ) -> Any : ...
560560
561561@type_check_only
562562class _Call21 (Protocol ):
0 commit comments