@@ -61,7 +61,10 @@ from pandas.core.window.rolling import (
61
61
Rolling ,
62
62
Window ,
63
63
)
64
- from typing_extensions import TypeAlias
64
+ from typing_extensions import (
65
+ Never ,
66
+ TypeAlias ,
67
+ )
65
68
import xarray as xr
66
69
67
70
from pandas ._libs .missing import NAType
@@ -1211,7 +1214,7 @@ class Series(IndexOpsMixin, NDFrame, Generic[S1]):
1211
1214
def __add__ (self , other : Timestamp ) -> TimestampSeries : ...
1212
1215
@overload
1213
1216
def __add__ (
1214
- self , other : num | _str | Timedelta | _ListLike | Series [S1 ]
1217
+ self , other : num | _str | Timedelta | _ListLike | Series [S1 ] | np . timedelta64
1215
1218
) -> Series : ...
1216
1219
# ignore needed for mypy as we want different results based on the arguments
1217
1220
@overload
@@ -1243,7 +1246,9 @@ class Series(IndexOpsMixin, NDFrame, Generic[S1]):
1243
1246
def __le__ (self , other : S1 | _ListLike | Series [S1 ]) -> Series [_bool ]: ...
1244
1247
def __lt__ (self , other : S1 | _ListLike | Series [S1 ]) -> Series [_bool ]: ...
1245
1248
@overload
1246
- def __mul__ (self , other : Timedelta | TimedeltaSeries ) -> TimedeltaSeries : ...
1249
+ def __mul__ (
1250
+ self , other : Timedelta | TimedeltaSeries | np .timedelta64
1251
+ ) -> TimedeltaSeries : ...
1247
1252
@overload
1248
1253
def __mul__ (self , other : num | _ListLike | Series ) -> Series : ...
1249
1254
def __mod__ (self , other : num | _ListLike | Series [S1 ]) -> Series [S1 ]: ...
@@ -1304,17 +1309,19 @@ class Series(IndexOpsMixin, NDFrame, Generic[S1]):
1304
1309
) -> TimedeltaSeries : ...
1305
1310
@overload
1306
1311
def __sub__ (
1307
- self : Series [Timestamp ], other : Timedelta | TimedeltaSeries | TimedeltaIndex
1312
+ self : Series [Timestamp ],
1313
+ other : Timedelta | TimedeltaSeries | TimedeltaIndex | np .timedelta64 ,
1308
1314
) -> TimestampSeries : ...
1309
1315
@overload
1310
1316
def __sub__ (
1311
- self : Series [Timedelta ], other : Timedelta | TimedeltaSeries | TimedeltaIndex
1317
+ self : Series [Timedelta ],
1318
+ other : Timedelta | TimedeltaSeries | TimedeltaIndex | np .timedelta64 ,
1312
1319
) -> TimedeltaSeries : ...
1313
1320
@overload
1314
1321
def __sub__ (self , other : num | _ListLike | Series ) -> Series : ...
1315
1322
@overload
1316
1323
def __truediv__ (
1317
- self , other : Timedelta | TimedeltaSeries | TimedeltaIndex
1324
+ self , other : Timedelta | TimedeltaSeries | TimedeltaIndex | np . timedelta64
1318
1325
) -> Series [float ]: ...
1319
1326
@overload
1320
1327
def __truediv__ (self , other : num | _ListLike | Series [S1 ]) -> Series : ...
@@ -1739,6 +1746,14 @@ class TimestampSeries(Series[Timestamp]):
1739
1746
# ignore needed because of mypy
1740
1747
@property
1741
1748
def dt (self ) -> TimestampProperties : ... # type: ignore[override]
1749
+ @overload # type: ignore[override]
1750
+ def __add__ (
1751
+ self , other : TimedeltaSeries | np .timedelta64 | TimestampSeries
1752
+ ) -> TimestampSeries : ...
1753
+ @overload
1754
+ def __add__ (self , other : Timestamp ) -> Never : ...
1755
+ def __mul__ (self , other : TimestampSeries | np .timedelta64 | TimedeltaSeries ) -> Never : ... # type: ignore[override]
1756
+ def __truediv__ (self , other : TimestampSeries | np .timedelta64 | TimedeltaSeries ) -> Never : ... # type: ignore[override]
1742
1757
1743
1758
class TimedeltaSeries (Series [Timedelta ]):
1744
1759
# ignores needed because of mypy
@@ -1747,12 +1762,18 @@ class TimedeltaSeries(Series[Timedelta]):
1747
1762
@overload
1748
1763
def __add__ (self , other : Timestamp | DatetimeIndex ) -> TimestampSeries : ...
1749
1764
@overload
1750
- def __add__ (self , other : Timedelta ) -> TimedeltaSeries : ...
1765
+ def __add__ (self , other : Timedelta | np . timedelta64 ) -> TimedeltaSeries : ...
1751
1766
def __radd__ (self , pther : Timestamp | TimestampSeries ) -> TimestampSeries : ... # type: ignore[override]
1752
- def __mul__ (self , other : num ) -> TimedeltaSeries : ... # type: ignore[override]
1767
+ @overload # type: ignore[override]
1768
+ def __mul__ (
1769
+ self , other : TimestampSeries | np .timedelta64 | Timedelta | TimedeltaSeries
1770
+ ) -> Never : ...
1771
+ @overload
1772
+ def __mul__ (self , other : num ) -> TimedeltaSeries : ...
1753
1773
def __sub__ ( # type: ignore[override]
1754
- self , other : Timedelta | TimedeltaSeries | TimedeltaIndex
1774
+ self , other : Timedelta | TimedeltaSeries | TimedeltaIndex | np . timedelta64
1755
1775
) -> TimedeltaSeries : ...
1776
+ def __truediv__ (self , other : TimedeltaSeries | np .timedelta64 | TimedeltaIndex ) -> Series [float ]: ... # type: ignore[override]
1756
1777
@property
1757
1778
def dt (self ) -> TimedeltaProperties : ... # type: ignore[override]
1758
1779
0 commit comments