11# pyright: strict
2- import datetime as dt
3- from datetime import timedelta
2+ from datetime import (
3+ date ,
4+ datetime ,
5+ timedelta ,
6+ )
47from typing import (
58 ClassVar ,
69 Literal ,
@@ -133,17 +136,17 @@ class Timedelta(timedelta):
133136 def ceil (self , freq : str | BaseOffset ) -> Self : ...
134137 @property
135138 def resolution_string (self ) -> str : ...
136- # Override due to more types supported than dt. timedelta
139+ # Override due to more types supported than timedelta
137140 @overload # type: ignore[override]
138- def __add__ (self , other : dt . datetime | np .datetime64 ) -> Timestamp : ...
141+ def __add__ (self , other : datetime | np .datetime64 ) -> Timestamp : ...
139142 @overload
140143 def __add__ (self , other : timedelta | np .timedelta64 ) -> Self : ...
141144 @overload
142145 def __add__ (self , other : NaTType ) -> NaTType : ...
143146 @overload
144147 def __add__ (self , other : Period ) -> Period : ...
145148 @overload
146- def __add__ (self , other : dt . date ) -> dt . date : ...
149+ def __add__ (self , other : date ) -> date : ...
147150 @overload
148151 def __add__ (
149152 self , other : np_ndarray [ShapeT , np .timedelta64 ]
@@ -153,13 +156,13 @@ class Timedelta(timedelta):
153156 self , other : np_ndarray [ShapeT , np .datetime64 ]
154157 ) -> np_ndarray [ShapeT , np .datetime64 ]: ...
155158 @overload
156- def __radd__ (self , other : dt . datetime | np .datetime64 ) -> Timestamp : ... # type: ignore[misc]
159+ def __radd__ (self , other : datetime | np .datetime64 ) -> Timestamp : ... # type: ignore[misc]
157160 @overload
158161 def __radd__ (self , other : timedelta | np .timedelta64 ) -> Self : ...
159162 @overload
160163 def __radd__ (self , other : NaTType ) -> NaTType : ...
161164 @overload
162- def __radd__ (self , other : dt . date ) -> dt . date : ...
165+ def __radd__ (self , other : date ) -> date : ...
163166 @overload
164167 def __radd__ (
165168 self , other : np_ndarray [ShapeT , np .timedelta64 ]
@@ -168,9 +171,9 @@ class Timedelta(timedelta):
168171 def __radd__ (
169172 self , other : np_ndarray [ShapeT , np .datetime64 ]
170173 ) -> np_ndarray [ShapeT , np .datetime64 ]: ...
171- # Override due to more types supported than dt. timedelta
174+ # Override due to more types supported than timedelta
172175 @overload # type: ignore[override]
173- def __sub__ (self , other : timedelta | Timedelta | np .timedelta64 ) -> Timedelta : ...
176+ def __sub__ (self , other : timedelta | Timedelta | np .timedelta64 ) -> Self : ...
174177 @overload
175178 def __sub__ (self , other : NaTType ) -> NaTType : ...
176179 @overload
@@ -180,11 +183,9 @@ class Timedelta(timedelta):
180183 @overload
181184 def __sub__ (self , other : pd .TimedeltaIndex ) -> TimedeltaIndex : ...
182185 @overload
183- def __sub__ (self , other : Series [pd .Timedelta ]) -> Series [pd .Timedelta ]: ...
184- @overload
185- def __rsub__ (self , other : timedelta | Timedelta | np .timedelta64 ) -> Timedelta : ...
186+ def __rsub__ (self , other : timedelta | Timedelta | np .timedelta64 ) -> Self : ...
186187 @overload
187- def __rsub__ (self , other : dt . datetime | Timestamp | np .datetime64 ) -> Timestamp : ... # type: ignore[misc]
188+ def __rsub__ (self , other : datetime | Timestamp | np .datetime64 ) -> Timestamp : ... # type: ignore[misc]
188189 @overload
189190 def __rsub__ (self , other : NaTType ) -> NaTType : ...
190191 @overload
@@ -203,44 +204,31 @@ class Timedelta(timedelta):
203204 ) -> np_ndarray [ShapeT , np .timedelta64 ]: ...
204205 @overload
205206 def __rsub__ (self , other : pd .TimedeltaIndex ) -> pd .TimedeltaIndex : ...
206- def __neg__ (self ) -> Timedelta : ...
207- def __pos__ (self ) -> Timedelta : ...
208- def __abs__ (self ) -> Timedelta : ...
209- # Override due to more types supported than dt. timedelta
207+ def __neg__ (self ) -> Self : ...
208+ def __pos__ (self ) -> Self : ...
209+ def __abs__ (self ) -> Self : ...
210+ # Override due to more types supported than timedelta
210211 @overload # type: ignore[override]
211- def __mul__ (self , other : float ) -> Timedelta : ...
212+ def __mul__ (self , other : float ) -> Self : ...
212213 @overload
213214 def __mul__ (
214- self , other : np_ndarray [ShapeT , np .integer ] | np_ndarray [ ShapeT , np .floating ]
215+ self , other : np_ndarray [ShapeT , np .bool_ | np . integer | np .floating ]
215216 ) -> np_ndarray [ShapeT , np .timedelta64 ]: ...
216217 @overload
217- def __mul__ (self , other : Series [int ]) -> Series [Timedelta ]: ...
218- @overload
219- def __mul__ (self , other : Series [float ]) -> Series [Timedelta ]: ...
220- @overload
221- def __mul__ (self , other : Index [int ] | Index [float ]) -> TimedeltaIndex : ...
222- @overload
223- def __rmul__ (self , other : float ) -> Timedelta : ...
218+ def __rmul__ (self , other : float ) -> Self : ...
224219 @overload
225220 def __rmul__ (
226- self , other : np_ndarray [ShapeT , np .floating ] | np_ndarray [ ShapeT , np .integer ]
221+ self , other : np_ndarray [ShapeT , np .bool_ | np .integer | np . floating ]
227222 ) -> np_ndarray [ShapeT , np .timedelta64 ]: ...
228- @overload
229- def __rmul__ (self , other : Series [int ]) -> Series [Timedelta ]: ...
230- @overload
231- def __rmul__ (self , other : Series [float ]) -> Series [Timedelta ]: ...
232- # maybe related to https://github.com/python/mypy/issues/10755
233- @overload
234- def __rmul__ (self , other : Index [int ] | Index [float ]) -> TimedeltaIndex : ...
235- # Override due to more types supported than dt.timedelta
223+ # Override due to more types supported than timedelta
236224 # error: Signature of "__floordiv__" incompatible with supertype "timedelta"
237225 @overload # type: ignore[override]
238226 def __floordiv__ (self , other : timedelta | Timedelta | np .timedelta64 ) -> int : ...
239227 @overload
240- def __floordiv__ (self , other : float ) -> Timedelta : ...
228+ def __floordiv__ (self , other : float ) -> Self : ...
241229 @overload
242230 def __floordiv__ (
243- self , other : np_ndarray [ShapeT , np .integer ] | np_ndarray [ ShapeT , np .floating ]
231+ self , other : np_ndarray [ShapeT , np .integer | np .floating ]
244232 ) -> np_ndarray [ShapeT , np .timedelta64 ]: ...
245233 @overload
246234 def __floordiv__ (
@@ -264,14 +252,14 @@ class Timedelta(timedelta):
264252 def __rfloordiv__ (
265253 self , other : np_ndarray [ShapeT , np .timedelta64 ]
266254 ) -> np_ndarray [ShapeT , np .int_ ]: ...
267- # Override due to more types supported than dt. timedelta
255+ # Override due to more types supported than timedelta
268256 @overload # type: ignore[override]
269257 def __truediv__ (self , other : timedelta | Timedelta | NaTType ) -> float : ...
270258 @overload
271- def __truediv__ (self , other : float ) -> Timedelta : ...
259+ def __truediv__ (self , other : float ) -> Self : ...
272260 @overload
273261 def __truediv__ (
274- self , other : np_ndarray [ShapeT , np .integer ] | np_ndarray [ ShapeT , np .floating ]
262+ self , other : np_ndarray [ShapeT , np .integer | np .floating ]
275263 ) -> np_ndarray [ShapeT , np .timedelta64 ]: ...
276264 @overload
277265 def __truediv__ (self , other : Series [Timedelta ]) -> Series [float ]: ...
@@ -282,7 +270,7 @@ class Timedelta(timedelta):
282270 @overload
283271 def __truediv__ (self , other : Index [int ] | Index [float ]) -> TimedeltaIndex : ...
284272 def __rtruediv__ (self , other : timedelta | Timedelta | NaTType ) -> float : ...
285- # Override due to more types supported than dt. timedelta
273+ # Override due to more types supported than timedelta
286274 @overload
287275 def __eq__ (self , other : timedelta | Timedelta | np .timedelta64 ) -> bool : ... # type: ignore[overload-overlap] # pyright: ignore[reportOverlappingOverload]
288276 @overload
@@ -295,7 +283,7 @@ class Timedelta(timedelta):
295283 ) -> np_ndarray [ShapeT , np .bool_ ]: ...
296284 @overload
297285 def __eq__ (self , other : object ) -> Literal [False ]: ...
298- # Override due to more types supported than dt. timedelta
286+ # Override due to more types supported than timedelta
299287 @overload
300288 def __ne__ (self , other : timedelta | Timedelta | np .timedelta64 ) -> bool : ... # type: ignore[overload-overlap] # pyright: ignore[reportOverlappingOverload]
301289 @overload
@@ -308,18 +296,18 @@ class Timedelta(timedelta):
308296 ) -> np_ndarray [ShapeT , np .bool_ ]: ...
309297 @overload
310298 def __ne__ (self , other : object ) -> Literal [True ]: ...
311- # Override due to more types supported than dt. timedelta
299+ # Override due to more types supported than timedelta
312300 @overload # type: ignore[override]
313- def __mod__ (self , other : timedelta ) -> Timedelta : ...
301+ def __mod__ (self , other : timedelta ) -> Self : ...
314302 @overload
315- def __mod__ (self , other : float ) -> Timedelta : ...
303+ def __mod__ (self , other : float ) -> Self : ...
316304 @overload
317305 def __mod__ (self , other : Series [int ] | Series [float ]) -> Series [Timedelta ]: ...
318306 @overload
319307 def __mod__ (self , other : Index [int ] | Index [float ]) -> TimedeltaIndex : ...
320308 @overload
321309 def __mod__ (
322- self , other : np_ndarray [ShapeT , np .integer ] | np_ndarray [ ShapeT , np .floating ]
310+ self , other : np_ndarray [ShapeT , np .integer | np .floating ]
323311 ) -> np_ndarray [ShapeT , np .timedelta64 ]: ...
324312 @overload
325313 def __mod__ (
@@ -328,7 +316,7 @@ class Timedelta(timedelta):
328316 def __divmod__ (self , other : timedelta ) -> tuple [int , Timedelta ]: ...
329317 # Mypy complains Forward operator "<inequality op>" is not callable, so ignore misc
330318 # for le, lt ge and gt
331- # Override due to more types supported than dt. timedelta
319+ # Override due to more types supported than timedelta
332320 @overload # type: ignore[override]
333321 def __le__ (self , other : timedelta | Timedelta | np .timedelta64 ) -> bool : ... # type: ignore[misc]
334322 @overload
@@ -339,7 +327,7 @@ class Timedelta(timedelta):
339327 ) -> np_ndarray [ShapeT , np .bool_ ]: ...
340328 @overload
341329 def __le__ (self , other : Series [pd .Timedelta ]) -> Series [bool ]: ...
342- # Override due to more types supported than dt. timedelta
330+ # Override due to more types supported than timedelta
343331 @overload # type: ignore[override]
344332 def __lt__ (self , other : timedelta | Timedelta | np .timedelta64 ) -> bool : ... # type: ignore[misc]
345333 @overload
@@ -350,7 +338,7 @@ class Timedelta(timedelta):
350338 ) -> np_ndarray [ShapeT , np .bool_ ]: ...
351339 @overload
352340 def __lt__ (self , other : Series [pd .Timedelta ]) -> Series [bool ]: ...
353- # Override due to more types supported than dt. timedelta
341+ # Override due to more types supported than timedelta
354342 @overload # type: ignore[override]
355343 def __ge__ (self , other : timedelta | Timedelta | np .timedelta64 ) -> bool : ... # type: ignore[misc]
356344 @overload
@@ -361,7 +349,7 @@ class Timedelta(timedelta):
361349 ) -> np_ndarray [ShapeT , np .bool_ ]: ...
362350 @overload
363351 def __ge__ (self , other : Series [pd .Timedelta ]) -> Series [bool ]: ...
364- # Override due to more types supported than dt. timedelta
352+ # Override due to more types supported than timedelta
365353 @overload # type: ignore[override]
366354 def __gt__ (self , other : timedelta | Timedelta | np .timedelta64 ) -> bool : ... # type: ignore[misc]
367355 @overload
0 commit comments