@@ -25,6 +25,7 @@ from typing import (
2525 Generic ,
2626 Literal ,
2727 NoReturn ,
28+ TypeVar ,
2829 overload ,
2930)
3031
@@ -181,6 +182,13 @@ from pandas.core.dtypes.dtypes import CategoricalDtype
181182
182183from pandas .plotting import PlotAccessor
183184
185+ _scalar_timedelta : TypeAlias = timedelta | np .timedelta64 | BaseOffset | Timedelta
186+ _vector_timedelta : TypeAlias = (
187+ Sequence [timedelta ] | Sequence [Timedelta ] | Series [Timedelta ] | TimedeltaIndex
188+ )
189+ _all_timedelta : TypeAlias = _scalar_timedelta | _vector_timedelta
190+ _stamp_and_delta = TypeVar ("_stamp_and_delta" , bound = Timestamp | Timedelta )
191+
184192class _iLocIndexerSeries (_iLocIndexer , Generic [S1 ]):
185193 # get item
186194 @overload
@@ -1591,15 +1599,7 @@ class Series(IndexOpsMixin[S1], NDFrame):
15911599 ) -> Series [int ]: ...
15921600 @overload
15931601 def __add__ (
1594- self : Series [Timestamp ],
1595- other : (
1596- Timedelta
1597- | Series [Timedelta ]
1598- | TimedeltaIndex
1599- | np .timedelta64
1600- | timedelta
1601- | BaseOffset
1602- ),
1602+ self : Series [Timestamp ], other : _all_timedelta
16031603 ) -> Series [Timestamp ]: ...
16041604 @overload
16051605 def __add__ (self : Series [Timedelta ], other : Period ) -> PeriodSeries : ...
@@ -1686,7 +1686,7 @@ class Series(IndexOpsMixin[S1], NDFrame):
16861686 def __or__ (self , other : int | np_ndarray_anyint | Series [int ]) -> Series [int ]: ...
16871687 @overload
16881688 def __radd__ (
1689- self : Series [Timestamp ], other : Series [ Timedelta ] | np . timedelta64 | timedelta
1689+ self : Series [Timestamp ], other : _all_timedelta
16901690 ) -> Series [Timestamp ]: ...
16911691 @overload
16921692 def __radd__ (
@@ -1707,14 +1707,7 @@ class Series(IndexOpsMixin[S1], NDFrame):
17071707 def __rdivmod__ (self , other : num | _ListLike | Series [S1 ]) -> Series [S1 ]: ... # type: ignore[override] # pyright: ignore[reportIncompatibleMethodOverride]
17081708 @overload
17091709 def __rfloordiv__ (
1710- self : Series [Timedelta ],
1711- other : (
1712- timedelta
1713- | Series [Timedelta ]
1714- | np .timedelta64
1715- | TimedeltaIndex
1716- | Sequence [timedelta ]
1717- ),
1710+ self : Series [Timedelta ], other : _all_timedelta
17181711 ) -> Series [int ]: ...
17191712 @overload
17201713 def __rfloordiv__ (self , other : num | _ListLike | Series [S1 ]) -> Series [S1 ]: ...
@@ -1737,16 +1730,7 @@ class Series(IndexOpsMixin[S1], NDFrame):
17371730 def __rsub__ (self , other : num | _ListLike | Series [S1 ]) -> Series : ...
17381731 @overload
17391732 def __rtruediv__ (
1740- self : Series [Timedelta ],
1741- other : (
1742- timedelta
1743- | Timedelta
1744- | Sequence [Timedelta ]
1745- | Series [Timedelta ]
1746- | np .timedelta64
1747- | TimedeltaIndex
1748- | Sequence [timedelta ]
1749- ),
1733+ self : Series [Timedelta ], other : _all_timedelta
17501734 ) -> Series [float ]: ...
17511735 @overload
17521736 def __rtruediv__ (self , other : num | _ListLike | Series [S1 ] | Path ) -> Series : ...
@@ -1764,15 +1748,7 @@ class Series(IndexOpsMixin[S1], NDFrame):
17641748 ) -> Series [int ]: ...
17651749 @overload
17661750 def __sub__ (
1767- self : Series [Timestamp ],
1768- other : (
1769- Timedelta
1770- | Series [Timedelta ]
1771- | TimedeltaIndex
1772- | np .timedelta64
1773- | timedelta
1774- | BaseOffset
1775- ),
1751+ self : Series [Timestamp ], other : _all_timedelta
17761752 ) -> Series [Timestamp ]: ...
17771753 @overload
17781754 def __sub__ (
@@ -1794,16 +1770,7 @@ class Series(IndexOpsMixin[S1], NDFrame):
17941770 ) -> Series [Timestamp ]: ...
17951771 @overload
17961772 def __truediv__ (
1797- self : Series [Timedelta ],
1798- other : (
1799- timedelta
1800- | Timedelta
1801- | Sequence [Timedelta ]
1802- | Series [Timedelta ]
1803- | np .timedelta64
1804- | TimedeltaIndex
1805- | Sequence [timedelta ]
1806- ),
1773+ self : Series [Timedelta ], other : _all_timedelta
18071774 ) -> Series [float ]: ...
18081775 @overload
18091776 def __truediv__ (
@@ -1996,25 +1963,16 @@ class Series(IndexOpsMixin[S1], NDFrame):
19961963 numeric_only : _bool = ...,
19971964 ** kwargs : Any ,
19981965 ) -> S1 : ...
1999- # @overload
2000- # def mean(
2001- # self: Series[Timestamp],
2002- # axis: AxisIndex | None = ...,
2003- # skipna: _bool = ...,
2004- # level: None = ...,
2005- # numeric_only: _bool = ...,
2006- # **kwargs: Any,
2007- # ) -> Timestamp: ...
2008- # @overload
2009- # def mean(
2010- # self: Series[Timedelta],
2011- # axis: AxisIndex | None = ...,
2012- # skipna: _bool = ...,
2013- # level: None = ...,
2014- # numeric_only: _bool = ...,
2015- # **kwargs: Any,
2016- # ) -> Timedelta: ...
2017- # @overload
1966+ @overload
1967+ def mean (
1968+ self : Series [_stamp_and_delta ],
1969+ axis : AxisIndex | None = ...,
1970+ skipna : _bool = ...,
1971+ level : None = ...,
1972+ numeric_only : _bool = ...,
1973+ ** kwargs : Any ,
1974+ ) -> _stamp_and_delta : ...
1975+ @overload
20181976 def mean (
20191977 self ,
20201978 axis : AxisIndex | None = ...,
0 commit comments