@@ -14,6 +14,7 @@ from typing import (
14
14
15
15
from dateutil .relativedelta import weekday as WeekdayClass
16
16
import numpy as np
17
+ from pandas import Timestamp
17
18
from pandas .core .indexes .datetimes import DatetimeIndex
18
19
from typing_extensions import Self
19
20
@@ -22,7 +23,7 @@ from pandas._typing import npt
22
23
23
24
from pandas .tseries .holiday import AbstractHolidayCalendar
24
25
25
- _DatetimeT = TypeVar ("_DatetimeT" , bound = date )
26
+ _DatetimeT = TypeVar ("_DatetimeT" , bound = datetime )
26
27
_TimedeltaT = TypeVar ("_TimedeltaT" , bound = timedelta )
27
28
28
29
prefix_mapping : dict [str , type ]
@@ -42,26 +43,32 @@ class BaseOffset:
42
43
@overload
43
44
def __add__ (self , other : npt .NDArray [np .object_ ]) -> npt .NDArray [np .object_ ]: ...
44
45
@overload
45
- def __add__ (self , other : BaseOffset ) -> Self : ...
46
+ def __add__ (self , other : _DatetimeT ) -> _DatetimeT : ... # type: ignore[overload-overlap] # pyright: ignore[reportOverlappingOverload]
47
+ @overload
48
+ def __add__ (self , other : date ) -> Timestamp : ...
46
49
@overload
47
- def __add__ (self , other : _DatetimeT ) -> _DatetimeT : ...
50
+ def __add__ (self , other : BaseOffset ) -> Self : ...
48
51
@overload
49
52
def __add__ (self , other : _TimedeltaT ) -> _TimedeltaT : ...
50
53
@overload
51
54
def __radd__ (self , other : npt .NDArray [np .object_ ]) -> npt .NDArray [np .object_ ]: ...
52
55
@overload
53
- def __radd__ (self , other : BaseOffset ) -> Self : ...
56
+ def __radd__ (self , other : _DatetimeT ) -> _DatetimeT : ... # type: ignore[overload-overlap] # pyright: ignore[reportOverlappingOverload]
54
57
@overload
55
- def __radd__ (self , other : _DatetimeT ) -> _DatetimeT : ...
58
+ def __radd__ (self , other : date ) -> Timestamp : ...
59
+ @overload
60
+ def __radd__ (self , other : BaseOffset ) -> Self : ...
56
61
@overload
57
62
def __radd__ (self , other : _TimedeltaT ) -> _TimedeltaT : ...
58
63
def __sub__ (self , other : BaseOffset ) -> Self : ...
59
64
@overload
60
65
def __rsub__ (self , other : npt .NDArray [np .object_ ]) -> npt .NDArray [np .object_ ]: ...
61
66
@overload
62
- def __rsub__ (self , other : BaseOffset ) -> Self : ...
67
+ def __rsub__ (self , other : _DatetimeT ) -> _DatetimeT : ... # type: ignore[overload-overlap] # pyright: ignore[reportOverlappingOverload]
63
68
@overload
64
- def __rsub__ (self , other : _DatetimeT ) -> _DatetimeT : ...
69
+ def __rsub__ (self , other : date ) -> Timestamp : ...
70
+ @overload
71
+ def __rsub__ (self , other : BaseOffset ) -> Self : ...
65
72
@overload
66
73
def __rsub__ (self , other : _TimedeltaT ) -> _TimedeltaT : ...
67
74
def __call__ (self , other ): ...
0 commit comments