Skip to content

Commit 386e309

Browse files
committed
refactor(series): #718 return Never
1 parent 1b270b1 commit 386e309

File tree

4 files changed

+27
-9
lines changed

4 files changed

+27
-9
lines changed

pandas-stubs/core/series.pyi

Lines changed: 21 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -183,11 +183,26 @@ from pandas.core.dtypes.dtypes import CategoricalDtype
183183

184184
from pandas.plotting import PlotAccessor
185185

186+
_scalar_timestamp: TypeAlias = datetime | np.datetime64 | Timestamp
187+
_vector_timestamp: TypeAlias = (
188+
Sequence[datetime]
189+
| Sequence[np.datetime64]
190+
| Sequence[Timestamp]
191+
| np.typing.NDArray[np.datetime64]
192+
| DatetimeIndex
193+
)
194+
_nonseries_timestamp: TypeAlias = _scalar_timestamp | _vector_timestamp
195+
186196
_scalar_timedelta: TypeAlias = timedelta | np.timedelta64 | BaseOffset | Timedelta
187197
_vector_timedelta: TypeAlias = (
188-
Sequence[timedelta] | Sequence[Timedelta] | TimedeltaIndex
198+
Sequence[timedelta]
199+
| Sequence[np.timedelta64]
200+
| Sequence[Timedelta]
201+
| np.typing.NDArray[np.timedelta64]
202+
| TimedeltaIndex
189203
)
190204
_nonseries_timedelta: TypeAlias = _scalar_timedelta | _vector_timedelta
205+
191206
_nonseries_int: TypeAlias = int | np_ndarray_anyint | Sequence[int]
192207

193208
_T_INT = TypeVar("_T_INT", bound=int)
@@ -1601,6 +1616,10 @@ class Series(IndexOpsMixin[S1], NDFrame):
16011616
self: Series[_T_INT], other: _nonseries_int | Series[int]
16021617
) -> Series[_T_INT]: ...
16031618
@overload
1619+
def __add__(
1620+
self: Series[Timestamp], other: _nonseries_timestamp | Series[Timestamp]
1621+
) -> Never: ...
1622+
@overload
16041623
def __add__(
16051624
self: Series[_T_STAMP],
16061625
other: _nonseries_timedelta | Series[Timedelta],
@@ -1609,8 +1628,7 @@ class Series(IndexOpsMixin[S1], NDFrame):
16091628
def __add__(self: Series[Timedelta], other: Period) -> PeriodSeries: ...
16101629
@overload
16111630
def __add__(
1612-
self: Series[Timedelta],
1613-
other: datetime | Timestamp | Series[Timestamp] | DatetimeIndex,
1631+
self: Series[Timedelta], other: _nonseries_timestamp | Series[Timestamp]
16141632
) -> Series[Timestamp]: ...
16151633
@overload
16161634
def __add__(self, other: S1 | Self) -> Self: ...

tests/test_frame.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2816,9 +2816,9 @@ def test_sum_get_add() -> None:
28162816
summer = df.sum(axis=1)
28172817
check(assert_type(summer, pd.Series), pd.Series)
28182818

2819-
check(assert_type(s + summer, pd.Series), pd.Series)
2820-
check(assert_type(s + df["y"], pd.Series), pd.Series)
2821-
check(assert_type(summer + summer, pd.Series), pd.Series)
2819+
check(assert_type(s + summer, pd.Series), pd.Series) # type: ignore[assert-type]
2820+
check(assert_type(s + df["y"], pd.Series), pd.Series) # type: ignore[assert-type]
2821+
check(assert_type(summer + summer, pd.Series), pd.Series) # type: ignore[assert-type]
28222822

28232823

28242824
def test_getset_untyped() -> None:

tests/test_series.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1593,7 +1593,7 @@ def test_series_min_max_sub_axis() -> None:
15931593
ss = s1 - s2
15941594
sm = s1 * s2
15951595
sd = s1 / s2
1596-
check(assert_type(sa, pd.Series), pd.Series)
1596+
check(assert_type(sa, pd.Series), pd.Series) # type: ignore[assert-type]
15971597
check(assert_type(ss, pd.Series), pd.Series) # type: ignore[assert-type]
15981598
check(assert_type(sm, pd.Series), pd.Series)
15991599
check(assert_type(sd, pd.Series), pd.Series)

tests/test_timefuncs.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -320,9 +320,9 @@ def test_fail_on_adding_two_timestamps() -> None:
320320
s1 = pd.Series(pd.to_datetime(["2022-05-01", "2022-06-01"]))
321321
s2 = pd.Series(pd.to_datetime(["2022-05-15", "2022-06-15"]))
322322
if TYPE_CHECKING_INVALID_USAGE:
323-
ssum: pd.Series = s1 + s2
323+
ssum = s1 + s2 # type: ignore[var-annotated]
324324
ts = pd.Timestamp("2022-06-30")
325-
tsum: pd.Series = s1 + ts
325+
tsum = s1 + ts # type: ignore[var-annotated]
326326

327327

328328
def test_dtindex_tzinfo() -> None:

0 commit comments

Comments
 (0)