From 0b56b31ed873d11557a0c36eda7b60b9549b0c94 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lo=C3=AFc=20Diridollou?= Date: Sat, 7 Jun 2025 09:29:15 -0400 Subject: [PATCH] GH1241 Add cumsum method on TimedeltaSeries --- pandas-stubs/core/series.pyi | 7 +++++++ tests/test_series.py | 11 +++++++++++ 2 files changed, 18 insertions(+) diff --git a/pandas-stubs/core/series.pyi b/pandas-stubs/core/series.pyi index 8ea4612b..327b0a2b 100644 --- a/pandas-stubs/core/series.pyi +++ b/pandas-stubs/core/series.pyi @@ -2334,6 +2334,13 @@ class TimedeltaSeries(Series[Timedelta]): **kwargs: Any, ) -> Timedelta: ... def diff(self, periods: int = ...) -> TimedeltaSeries: ... # type: ignore[override] # pyright: ignore[reportIncompatibleMethodOverride] + def cumsum( + self, + axis: AxisIndex | None = ..., + skipna: _bool = ..., + *args: Any, + **kwargs: Any, + ) -> TimedeltaSeries: ... class PeriodSeries(Series[Period]): @property diff --git a/tests/test_series.py b/tests/test_series.py index 57051997..99e6d670 100644 --- a/tests/test_series.py +++ b/tests/test_series.py @@ -3813,3 +3813,14 @@ def test_series_items() -> None: s = pd.Series(data=[1, 2, 3, 4], index=["cow", "coal", "coalesce", ""]) check(assert_type(next(s.items()), tuple[Hashable, int]), tuple) check(assert_type(s.items(), Iterator[tuple[Hashable, int]]), Iterator) + + +def test_cumsum_timedelta() -> None: + + s = pd.Series(pd.to_timedelta([1, 2, 3], "h")) + check(assert_type(s.cumsum(), "TimedeltaSeries"), pd.Series, pd.Timedelta) + check( + assert_type(pd.Timestamp(0) + s.cumsum(), "TimestampSeries"), + pd.Series, + pd.Timestamp, + )