|
1 |
| -from typing import Any, Optional, Union |
| 1 | +from typing import Optional, overload, Union |
2 | 2 | from datetime import date, datetime, timedelta
|
3 | 3 |
|
4 | 4 | __all__ = ... # type: List[str]
|
@@ -51,17 +51,43 @@ class relativedelta(object):
|
51 | 51 |
|
52 | 52 | def normalized(self) -> 'relativedelta': ...
|
53 | 53 |
|
54 |
| - def __add__( |
55 |
| - self, |
56 |
| - other: Union['relativedelta', timedelta, date, datetime]) -> 'relativedelta': ... |
| 54 | + # TODO: use Union when mypy will handle it properly in overloaded operator |
| 55 | + # methods (#2129, #1442, #1264 in mypy) |
| 56 | + @overload |
| 57 | + def __add__(self, other: 'relativedelta') -> 'relativedelta': ... |
57 | 58 |
|
58 |
| - def __radd__( |
59 |
| - self, |
60 |
| - other: Any) -> 'relativedelta': ... |
| 59 | + @overload |
| 60 | + def __add__(self, other: timedelta) -> 'relativedelta': ... |
61 | 61 |
|
62 |
| - def __rsub__( |
63 |
| - self, |
64 |
| - other: Any) -> 'relativedelta': ... |
| 62 | + @overload |
| 63 | + def __add__(self, other: date) -> date: ... |
| 64 | + |
| 65 | + @overload |
| 66 | + def __add__(self, other: datetime) -> datetime: ... |
| 67 | + |
| 68 | + @overload |
| 69 | + def __radd__(self, other: 'relativedelta') -> 'relativedelta': ... |
| 70 | + |
| 71 | + @overload |
| 72 | + def __radd__(self, other: timedelta) -> 'relativedelta': ... |
| 73 | + |
| 74 | + @overload |
| 75 | + def __radd__(self, other: date) -> date: ... |
| 76 | + |
| 77 | + @overload |
| 78 | + def __radd__(self, other: datetime) -> datetime: ... |
| 79 | + |
| 80 | + @overload |
| 81 | + def __rsub__(self, other: 'relativedelta') -> 'relativedelta': ... |
| 82 | + |
| 83 | + @overload |
| 84 | + def __rsub__(self, other: timedelta) -> 'relativedelta': ... |
| 85 | + |
| 86 | + @overload |
| 87 | + def __rsub__(self, other: date) -> date: ... |
| 88 | + |
| 89 | + @overload |
| 90 | + def __rsub__(self, other: datetime) -> datetime: ... |
65 | 91 |
|
66 | 92 | def __sub__(self, other: 'relativedelta') -> 'relativedelta': ...
|
67 | 93 |
|
|
0 commit comments