Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Commit 5147e4d

Browse filesBrowse files
authored
Merge pull request #28702 from jorenham/typing/fix-28701
TYP: Fix inconsistent ``NDArray[float64].__[r]truediv__`` return type with ``float``
2 parents 67fb349 + edef73f commit 5147e4d
Copy full SHA for 5147e4d

File tree

2 files changed

+88
-2
lines changed
Filter options

2 files changed

+88
-2
lines changed

‎numpy/__init__.pyi

Copy file name to clipboardExpand all lines: numpy/__init__.pyi
+2-2Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2989,7 +2989,7 @@ class ndarray(_ArrayOrScalarCommon, Generic[_ShapeT_co, _DTypeT_co]):
29892989
def __rmul__(self: NDArray[Any], other: _ArrayLikeObject_co, /) -> Any: ...
29902990

29912991
@overload
2992-
def __truediv__(self: _ArrayInt_co, other: _ArrayLikeFloat64_co, /) -> NDArray[float64]: ...
2992+
def __truediv__(self: _ArrayInt_co | NDArray[floating[_64Bit]], other: _ArrayLikeFloat64_co, /) -> NDArray[float64]: ...
29932993
@overload
29942994
def __truediv__(self: _ArrayFloat64_co, other: _ArrayLikeInt_co | _ArrayLike[floating[_64Bit]], /) -> NDArray[float64]: ...
29952995
@overload
@@ -3020,7 +3020,7 @@ class ndarray(_ArrayOrScalarCommon, Generic[_ShapeT_co, _DTypeT_co]):
30203020
def __truediv__(self: NDArray[Any], other: _ArrayLikeObject_co, /) -> Any: ...
30213021

30223022
@overload
3023-
def __rtruediv__(self: _ArrayInt_co, other: _ArrayLikeFloat64_co, /) -> NDArray[float64]: ...
3023+
def __rtruediv__(self: _ArrayInt_co | NDArray[floating[_64Bit]], other: _ArrayLikeFloat64_co, /) -> NDArray[float64]: ...
30243024
@overload
30253025
def __rtruediv__(self: _ArrayFloat64_co, other: _ArrayLikeInt_co | _ArrayLike[floating[_64Bit]], /) -> NDArray[float64]: ...
30263026
@overload

‎numpy/typing/tests/data/reveal/arithmetic.pyi

Copy file name to clipboardExpand all lines: numpy/typing/tests/data/reveal/arithmetic.pyi
+86Lines changed: 86 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -185,6 +185,92 @@ assert_type(AR_LIKE_m - AR_O, Any)
185185
assert_type(AR_LIKE_M - AR_O, Any)
186186
assert_type(AR_LIKE_O - AR_O, Any)
187187

188+
# Array "true" division
189+
190+
assert_type(AR_f / b, npt.NDArray[np.float64])
191+
assert_type(AR_f / i, npt.NDArray[np.float64])
192+
assert_type(AR_f / f, npt.NDArray[np.float64])
193+
194+
assert_type(b / AR_f, npt.NDArray[np.float64])
195+
assert_type(i / AR_f, npt.NDArray[np.float64])
196+
assert_type(f / AR_f, npt.NDArray[np.float64])
197+
198+
assert_type(AR_b / AR_LIKE_b, npt.NDArray[np.float64])
199+
assert_type(AR_b / AR_LIKE_u, npt.NDArray[np.float64])
200+
assert_type(AR_b / AR_LIKE_i, npt.NDArray[np.float64])
201+
assert_type(AR_b / AR_LIKE_f, npt.NDArray[np.float64])
202+
assert_type(AR_b / AR_LIKE_O, Any)
203+
204+
assert_type(AR_LIKE_b / AR_b, npt.NDArray[np.float64])
205+
assert_type(AR_LIKE_u / AR_b, npt.NDArray[np.float64])
206+
assert_type(AR_LIKE_i / AR_b, npt.NDArray[np.float64])
207+
assert_type(AR_LIKE_f / AR_b, npt.NDArray[np.float64])
208+
assert_type(AR_LIKE_O / AR_b, Any)
209+
210+
assert_type(AR_u / AR_LIKE_b, npt.NDArray[np.float64])
211+
assert_type(AR_u / AR_LIKE_u, npt.NDArray[np.float64])
212+
assert_type(AR_u / AR_LIKE_i, npt.NDArray[np.float64])
213+
assert_type(AR_u / AR_LIKE_f, npt.NDArray[np.float64])
214+
assert_type(AR_u / AR_LIKE_O, Any)
215+
216+
assert_type(AR_LIKE_b / AR_u, npt.NDArray[np.float64])
217+
assert_type(AR_LIKE_u / AR_u, npt.NDArray[np.float64])
218+
assert_type(AR_LIKE_i / AR_u, npt.NDArray[np.float64])
219+
assert_type(AR_LIKE_f / AR_u, npt.NDArray[np.float64])
220+
assert_type(AR_LIKE_m / AR_u, npt.NDArray[np.timedelta64])
221+
assert_type(AR_LIKE_O / AR_u, Any)
222+
223+
assert_type(AR_i / AR_LIKE_b, npt.NDArray[np.float64])
224+
assert_type(AR_i / AR_LIKE_u, npt.NDArray[np.float64])
225+
assert_type(AR_i / AR_LIKE_i, npt.NDArray[np.float64])
226+
assert_type(AR_i / AR_LIKE_f, npt.NDArray[np.float64])
227+
assert_type(AR_i / AR_LIKE_O, Any)
228+
229+
assert_type(AR_LIKE_b / AR_i, npt.NDArray[np.float64])
230+
assert_type(AR_LIKE_u / AR_i, npt.NDArray[np.float64])
231+
assert_type(AR_LIKE_i / AR_i, npt.NDArray[np.float64])
232+
assert_type(AR_LIKE_f / AR_i, npt.NDArray[np.float64])
233+
assert_type(AR_LIKE_m / AR_i, npt.NDArray[np.timedelta64])
234+
assert_type(AR_LIKE_O / AR_i, Any)
235+
236+
assert_type(AR_f / AR_LIKE_b, npt.NDArray[np.float64])
237+
assert_type(AR_f / AR_LIKE_u, npt.NDArray[np.float64])
238+
assert_type(AR_f / AR_LIKE_i, npt.NDArray[np.float64])
239+
assert_type(AR_f / AR_LIKE_f, npt.NDArray[np.float64])
240+
assert_type(AR_f / AR_LIKE_O, Any)
241+
242+
assert_type(AR_LIKE_b / AR_f, npt.NDArray[np.float64])
243+
assert_type(AR_LIKE_u / AR_f, npt.NDArray[np.float64])
244+
assert_type(AR_LIKE_i / AR_f, npt.NDArray[np.float64])
245+
assert_type(AR_LIKE_f / AR_f, npt.NDArray[np.float64])
246+
assert_type(AR_LIKE_m / AR_f, npt.NDArray[np.timedelta64])
247+
assert_type(AR_LIKE_O / AR_f, Any)
248+
249+
assert_type(AR_m / AR_LIKE_u, npt.NDArray[np.timedelta64])
250+
assert_type(AR_m / AR_LIKE_i, npt.NDArray[np.timedelta64])
251+
assert_type(AR_m / AR_LIKE_f, npt.NDArray[np.timedelta64])
252+
assert_type(AR_m / AR_LIKE_m, npt.NDArray[np.float64])
253+
assert_type(AR_m / AR_LIKE_O, Any)
254+
255+
assert_type(AR_LIKE_m / AR_m, npt.NDArray[np.float64])
256+
assert_type(AR_LIKE_O / AR_m, Any)
257+
258+
assert_type(AR_O / AR_LIKE_b, Any)
259+
assert_type(AR_O / AR_LIKE_u, Any)
260+
assert_type(AR_O / AR_LIKE_i, Any)
261+
assert_type(AR_O / AR_LIKE_f, Any)
262+
assert_type(AR_O / AR_LIKE_m, Any)
263+
assert_type(AR_O / AR_LIKE_M, Any)
264+
assert_type(AR_O / AR_LIKE_O, Any)
265+
266+
assert_type(AR_LIKE_b / AR_O, Any)
267+
assert_type(AR_LIKE_u / AR_O, Any)
268+
assert_type(AR_LIKE_i / AR_O, Any)
269+
assert_type(AR_LIKE_f / AR_O, Any)
270+
assert_type(AR_LIKE_m / AR_O, Any)
271+
assert_type(AR_LIKE_M / AR_O, Any)
272+
assert_type(AR_LIKE_O / AR_O, Any)
273+
188274
# Array floor division
189275

190276
assert_type(AR_b // AR_LIKE_b, npt.NDArray[np.int8])

0 commit comments

Comments
0 (0)
Morty Proxy This is a proxified and sanitized view of the page, visit original site.