Skip to content

Commit 9a389ec

Browse files
authored
feat(series): #1098 arithmetic truediv (#1280)
* feat(series): #1098 arithmetic truediv * fix(typing): __truediv__ * fix(typing): truediv * fix(typing): __rtruediv__ and rtruediv * fix(typing): div and rdiv * fix(comment): ordering #1280 (review) * fix(comment): #1302 (comment) * fix(typing): truediv path * fix(comment): ordering #1280 (review)
1 parent 7fb03d4 commit 9a389ec

File tree

9 files changed

+1454
-428
lines changed

9 files changed

+1454
-428
lines changed

pandas-stubs/core/series.pyi

Lines changed: 491 additions & 276 deletions
Large diffs are not rendered by default.

tests/series/arithmetic/complex/test_add.py

Lines changed: 83 additions & 53 deletions
Original file line numberDiff line numberDiff line change
@@ -12,42 +12,54 @@ def test_add_py_scalar() -> None:
1212
"""Test pd.Series[complex] + Python native scalars"""
1313
i, f, c = 1, 1.0, 1j
1414

15-
check(assert_type(left + i, "pd.Series[complex]"), pd.Series, np.complex128)
16-
check(assert_type(left + f, "pd.Series[complex]"), pd.Series, np.complex128)
17-
check(assert_type(left + c, "pd.Series[complex]"), pd.Series, np.complex128)
15+
check(assert_type(left + i, "pd.Series[complex]"), pd.Series, np.complexfloating)
16+
check(assert_type(left + f, "pd.Series[complex]"), pd.Series, np.complexfloating)
17+
check(assert_type(left + c, "pd.Series[complex]"), pd.Series, np.complexfloating)
1818

19-
check(assert_type(i + left, "pd.Series[complex]"), pd.Series, np.complex128)
20-
check(assert_type(f + left, "pd.Series[complex]"), pd.Series, np.complex128)
21-
check(assert_type(c + left, "pd.Series[complex]"), pd.Series, np.complex128)
19+
check(assert_type(i + left, "pd.Series[complex]"), pd.Series, np.complexfloating)
20+
check(assert_type(f + left, "pd.Series[complex]"), pd.Series, np.complexfloating)
21+
check(assert_type(c + left, "pd.Series[complex]"), pd.Series, np.complexfloating)
2222

23-
check(assert_type(left.add(i), "pd.Series[complex]"), pd.Series, np.complex128)
24-
check(assert_type(left.add(f), "pd.Series[complex]"), pd.Series, np.complex128)
25-
check(assert_type(left.add(c), "pd.Series[complex]"), pd.Series, np.complex128)
23+
check(assert_type(left.add(i), "pd.Series[complex]"), pd.Series, np.complexfloating)
24+
check(assert_type(left.add(f), "pd.Series[complex]"), pd.Series, np.complexfloating)
25+
check(assert_type(left.add(c), "pd.Series[complex]"), pd.Series, np.complexfloating)
2626

27-
check(assert_type(left.radd(i), "pd.Series[complex]"), pd.Series, np.complex128)
28-
check(assert_type(left.radd(f), "pd.Series[complex]"), pd.Series, np.complex128)
29-
check(assert_type(left.radd(c), "pd.Series[complex]"), pd.Series, np.complex128)
27+
check(
28+
assert_type(left.radd(i), "pd.Series[complex]"), pd.Series, np.complexfloating
29+
)
30+
check(
31+
assert_type(left.radd(f), "pd.Series[complex]"), pd.Series, np.complexfloating
32+
)
33+
check(
34+
assert_type(left.radd(c), "pd.Series[complex]"), pd.Series, np.complexfloating
35+
)
3036

3137

3238
def test_add_py_sequence() -> None:
3339
"""Test pd.Series[complex] + Python native sequence"""
3440
i, f, c = [2, 3, 5], [1.0, 2.0, 3.0], [1j, 1j, 4j]
3541

36-
check(assert_type(left + i, "pd.Series[complex]"), pd.Series, np.complex128)
37-
check(assert_type(left + f, "pd.Series[complex]"), pd.Series, np.complex128)
38-
check(assert_type(left + c, "pd.Series[complex]"), pd.Series, np.complex128)
42+
check(assert_type(left + i, "pd.Series[complex]"), pd.Series, np.complexfloating)
43+
check(assert_type(left + f, "pd.Series[complex]"), pd.Series, np.complexfloating)
44+
check(assert_type(left + c, "pd.Series[complex]"), pd.Series, np.complexfloating)
3945

40-
check(assert_type(i + left, "pd.Series[complex]"), pd.Series, np.complex128)
41-
check(assert_type(f + left, "pd.Series[complex]"), pd.Series, np.complex128)
42-
check(assert_type(c + left, "pd.Series[complex]"), pd.Series, np.complex128)
46+
check(assert_type(i + left, "pd.Series[complex]"), pd.Series, np.complexfloating)
47+
check(assert_type(f + left, "pd.Series[complex]"), pd.Series, np.complexfloating)
48+
check(assert_type(c + left, "pd.Series[complex]"), pd.Series, np.complexfloating)
4349

44-
check(assert_type(left.add(i), "pd.Series[complex]"), pd.Series, np.complex128)
45-
check(assert_type(left.add(f), "pd.Series[complex]"), pd.Series, np.complex128)
46-
check(assert_type(left.add(c), "pd.Series[complex]"), pd.Series, np.complex128)
50+
check(assert_type(left.add(i), "pd.Series[complex]"), pd.Series, np.complexfloating)
51+
check(assert_type(left.add(f), "pd.Series[complex]"), pd.Series, np.complexfloating)
52+
check(assert_type(left.add(c), "pd.Series[complex]"), pd.Series, np.complexfloating)
4753

48-
check(assert_type(left.radd(i), "pd.Series[complex]"), pd.Series, np.complex128)
49-
check(assert_type(left.radd(f), "pd.Series[complex]"), pd.Series, np.complex128)
50-
check(assert_type(left.radd(c), "pd.Series[complex]"), pd.Series, np.complex128)
54+
check(
55+
assert_type(left.radd(i), "pd.Series[complex]"), pd.Series, np.complexfloating
56+
)
57+
check(
58+
assert_type(left.radd(f), "pd.Series[complex]"), pd.Series, np.complexfloating
59+
)
60+
check(
61+
assert_type(left.radd(c), "pd.Series[complex]"), pd.Series, np.complexfloating
62+
)
5163

5264

5365
def test_add_numpy_array() -> None:
@@ -56,24 +68,36 @@ def test_add_numpy_array() -> None:
5668
f = np.array([1.0, 2.0, 3.0], np.float64)
5769
c = np.array([1.1j, 2.2j, 4.1j], np.complex128)
5870

59-
check(assert_type(left + i, "pd.Series[complex]"), pd.Series, np.complex128)
60-
check(assert_type(left + f, "pd.Series[complex]"), pd.Series, np.complex128)
61-
check(assert_type(left + c, "pd.Series[complex]"), pd.Series, np.complex128)
71+
check(assert_type(left + i, "pd.Series[complex]"), pd.Series, np.complexfloating)
72+
check(assert_type(left + f, "pd.Series[complex]"), pd.Series, np.complexfloating)
73+
check(assert_type(left + c, "pd.Series[complex]"), pd.Series, np.complexfloating)
6274

6375
# `numpy` typing gives the corresponding `ndarray`s in the static type
6476
# checking, where our `__radd__` cannot override. At runtime, they return
6577
# `Series`s with the correct element type.
66-
check(assert_type(i + left, "npt.NDArray[np.int64]"), pd.Series, np.complex128)
67-
check(assert_type(f + left, "npt.NDArray[np.float64]"), pd.Series, np.complex128)
68-
check(assert_type(c + left, "npt.NDArray[np.complex128]"), pd.Series, np.complex128)
69-
70-
check(assert_type(left.add(i), "pd.Series[complex]"), pd.Series, np.complex128)
71-
check(assert_type(left.add(f), "pd.Series[complex]"), pd.Series, np.complex128)
72-
check(assert_type(left.add(c), "pd.Series[complex]"), pd.Series, np.complex128)
73-
74-
check(assert_type(left.radd(i), "pd.Series[complex]"), pd.Series, np.complex128)
75-
check(assert_type(left.radd(f), "pd.Series[complex]"), pd.Series, np.complex128)
76-
check(assert_type(left.radd(c), "pd.Series[complex]"), pd.Series, np.complex128)
78+
check(assert_type(i + left, "npt.NDArray[np.int64]"), pd.Series, np.complexfloating)
79+
check(
80+
assert_type(f + left, "npt.NDArray[np.float64]"), pd.Series, np.complexfloating
81+
)
82+
check(
83+
assert_type(c + left, "npt.NDArray[np.complex128]"),
84+
pd.Series,
85+
np.complexfloating,
86+
)
87+
88+
check(assert_type(left.add(i), "pd.Series[complex]"), pd.Series, np.complexfloating)
89+
check(assert_type(left.add(f), "pd.Series[complex]"), pd.Series, np.complexfloating)
90+
check(assert_type(left.add(c), "pd.Series[complex]"), pd.Series, np.complexfloating)
91+
92+
check(
93+
assert_type(left.radd(i), "pd.Series[complex]"), pd.Series, np.complexfloating
94+
)
95+
check(
96+
assert_type(left.radd(f), "pd.Series[complex]"), pd.Series, np.complexfloating
97+
)
98+
check(
99+
assert_type(left.radd(c), "pd.Series[complex]"), pd.Series, np.complexfloating
100+
)
77101

78102

79103
def test_add_pd_series() -> None:
@@ -82,18 +106,24 @@ def test_add_pd_series() -> None:
82106
f = pd.Series([1.0, 2.0, 3.0])
83107
c = pd.Series([1.1j, 2.2j, 4.1j])
84108

85-
check(assert_type(left + i, "pd.Series[complex]"), pd.Series, np.complex128)
86-
check(assert_type(left + f, "pd.Series[complex]"), pd.Series, np.complex128)
87-
check(assert_type(left + c, "pd.Series[complex]"), pd.Series, np.complex128)
88-
89-
check(assert_type(i + left, "pd.Series[complex]"), pd.Series, np.complex128)
90-
check(assert_type(f + left, "pd.Series[complex]"), pd.Series, np.complex128)
91-
check(assert_type(c + left, "pd.Series[complex]"), pd.Series, np.complex128)
92-
93-
check(assert_type(left.add(i), "pd.Series[complex]"), pd.Series, np.complex128)
94-
check(assert_type(left.add(f), "pd.Series[complex]"), pd.Series, np.complex128)
95-
check(assert_type(left.add(c), "pd.Series[complex]"), pd.Series, np.complex128)
96-
97-
check(assert_type(left.radd(i), "pd.Series[complex]"), pd.Series, np.complex128)
98-
check(assert_type(left.radd(f), "pd.Series[complex]"), pd.Series, np.complex128)
99-
check(assert_type(left.radd(c), "pd.Series[complex]"), pd.Series, np.complex128)
109+
check(assert_type(left + i, "pd.Series[complex]"), pd.Series, np.complexfloating)
110+
check(assert_type(left + f, "pd.Series[complex]"), pd.Series, np.complexfloating)
111+
check(assert_type(left + c, "pd.Series[complex]"), pd.Series, np.complexfloating)
112+
113+
check(assert_type(i + left, "pd.Series[complex]"), pd.Series, np.complexfloating)
114+
check(assert_type(f + left, "pd.Series[complex]"), pd.Series, np.complexfloating)
115+
check(assert_type(c + left, "pd.Series[complex]"), pd.Series, np.complexfloating)
116+
117+
check(assert_type(left.add(i), "pd.Series[complex]"), pd.Series, np.complexfloating)
118+
check(assert_type(left.add(f), "pd.Series[complex]"), pd.Series, np.complexfloating)
119+
check(assert_type(left.add(c), "pd.Series[complex]"), pd.Series, np.complexfloating)
120+
121+
check(
122+
assert_type(left.radd(i), "pd.Series[complex]"), pd.Series, np.complexfloating
123+
)
124+
check(
125+
assert_type(left.radd(f), "pd.Series[complex]"), pd.Series, np.complexfloating
126+
)
127+
check(
128+
assert_type(left.radd(c), "pd.Series[complex]"), pd.Series, np.complexfloating
129+
)

0 commit comments

Comments
 (0)