Skip to content

Commit 7b3a180

Browse files
authored
Merge pull request #512 from numpy/better-ndarray-floordiv-mod-mypy-workaround
1 parent bb1b513 commit 7b3a180

File tree

4 files changed

+27
-11
lines changed

4 files changed

+27
-11
lines changed

src/numpy-stubs/@test/generated/ndarray_floordiv.pyi

Lines changed: 3 additions & 3 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/numpy-stubs/@test/generated/ndarray_mod.pyi

Lines changed: 3 additions & 3 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/numpy-stubs/__init__.pyi

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2551,7 +2551,11 @@ class ndarray(_ArrayOrScalarCommon, Generic[_ShapeT_co, _DTypeT_co]):
25512551
self: NDArray[_RealNumberT], x: _nt.CastsWith[_RealNumberT, _RealScalarT], /
25522552
) -> NDArray[_RealScalarT]: ...
25532553
@overload
2554-
def __floordiv__(self: _nt.CastsWithInt[_RealScalarT], x: _nt.SequenceND[int], /) -> NDArray[_RealScalarT]: ...
2554+
def __floordiv__(self: NDArray[_RealNumberT], x: _nt.SequenceND[py_bool], /) -> NDArray[_RealNumberT]: ...
2555+
@overload
2556+
def __floordiv__(
2557+
self: _nt.CastsWithInt[_RealScalarT], x: _nt.SequenceND[_nt.JustInt], /
2558+
) -> NDArray[_RealScalarT]: ...
25552559
@overload
25562560
def __floordiv__(
25572561
self: _nt.CastsWithFloat[_RealScalarT], x: _nt.SequenceND[_nt.JustFloat], /
@@ -2579,7 +2583,11 @@ class ndarray(_ArrayOrScalarCommon, Generic[_ShapeT_co, _DTypeT_co]):
25792583
self: NDArray[_RealNumberT], x: _nt.CastsWith[_RealNumberT, _RealScalarT], /
25802584
) -> NDArray[_RealScalarT]: ...
25812585
@overload
2582-
def __rfloordiv__(self: _nt.CastsWithInt[_RealScalarT], x: _nt.SequenceND[int], /) -> NDArray[_RealScalarT]: ...
2586+
def __rfloordiv__(self: NDArray[_RealNumberT], x: _nt.SequenceND[py_bool], /) -> NDArray[_RealNumberT]: ...
2587+
@overload
2588+
def __rfloordiv__(
2589+
self: _nt.CastsWithInt[_RealScalarT], x: _nt.SequenceND[_nt.JustInt], /
2590+
) -> NDArray[_RealScalarT]: ...
25832591
@overload
25842592
def __rfloordiv__(
25852593
self: _nt.CastsWithFloat[_RealScalarT], x: _nt.SequenceND[_nt.JustFloat], /
@@ -2623,7 +2631,9 @@ class ndarray(_ArrayOrScalarCommon, Generic[_ShapeT_co, _DTypeT_co]):
26232631
@overload
26242632
def __mod__(self: NDArray[_RealT], x: _nt.CastsWith[_RealT, _RealScalarT], /) -> NDArray[_RealScalarT]: ...
26252633
@overload
2626-
def __mod__(self: _nt.CastsWithInt[_RealScalarT], x: _nt.SequenceND[int], /) -> NDArray[_RealScalarT]: ...
2634+
def __mod__(self: NDArray[_RealNumberT], x: _nt.SequenceND[py_bool], /) -> NDArray[_RealNumberT]: ...
2635+
@overload
2636+
def __mod__(self: _nt.CastsWithInt[_RealScalarT], x: _nt.SequenceND[_nt.JustInt], /) -> NDArray[_RealScalarT]: ...
26272637
@overload
26282638
def __mod__(
26292639
self: _nt.CastsWithFloat[_RealScalarT], x: _nt.SequenceND[_nt.JustFloat], /
@@ -2643,7 +2653,9 @@ class ndarray(_ArrayOrScalarCommon, Generic[_ShapeT_co, _DTypeT_co]):
26432653
@overload
26442654
def __rmod__(self: NDArray[_RealT], x: _nt.CastsWith[_RealT, _RealScalarT], /) -> NDArray[_RealScalarT]: ...
26452655
@overload
2646-
def __rmod__(self: _nt.CastsWithInt[_RealScalarT], x: _nt.SequenceND[int], /) -> NDArray[_RealScalarT]: ...
2656+
def __rmod__(self: NDArray[_RealNumberT], x: _nt.SequenceND[py_bool], /) -> NDArray[_RealNumberT]: ...
2657+
@overload
2658+
def __rmod__(self: _nt.CastsWithInt[_RealScalarT], x: _nt.SequenceND[_nt.JustInt], /) -> NDArray[_RealScalarT]: ...
26472659
@overload
26482660
def __rmod__(
26492661
self: _nt.CastsWithFloat[_RealScalarT], x: _nt.SequenceND[_nt.JustFloat], /

tool/testgen.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1446,7 +1446,6 @@ def _gen_testcases_binop_py_0d(
14461446
testcase = None
14471447
elif (
14481448
(self.opname == "sub" and label_np == "b1" and name_py[0] == "b")
1449-
or (self.opname != "divmod" and label_np == "c16" and name_py[0] == "b")
14501449
or (label_np == "c16" and name_py[0] in "if")
14511450
): # fmt: skip
14521451
testcase = " ".join((
@@ -1524,6 +1523,11 @@ def get_testcases(self) -> Iterable[str | None]:
15241523
NDArrayOps("floordiv"),
15251524
NDArrayOps("mod"),
15261525
NDArrayOps("divmod"),
1526+
# NDArrayOps("lshift"),
1527+
# NDArrayOps("rshift"),
1528+
# NDArrayOps("and"),
1529+
# NDArrayOps("xor"),
1530+
# NDArrayOps("or"),
15271531
]
15281532

15291533

0 commit comments

Comments
 (0)