@@ -25,6 +25,7 @@ from pandas.core.indexes.base import Index
2525from pandas .core .indexes .datetimes import DatetimeIndex
2626from pandas .core .indexes .timedeltas import TimedeltaIndex
2727from pandas .core .series import Series
28+ from typing_extensions import override
2829
2930from pandas ._libs .tslibs import (
3031 Period ,
@@ -78,26 +79,35 @@ class Timestamp(datetime, SupportsIndex):
7879 # While Timestamp can return pd.NaT, having the constructor return
7980 # a Union with NaTType makes things awkward for users of pandas
8081 @property
82+ @override
8183 def year (self ) -> int : ...
8284 @property
85+ @override
8386 def month (self ) -> int : ...
8487 @property
88+ @override
8589 def day (self ) -> int : ...
8690 @property
91+ @override
8792 def hour (self ) -> int : ...
8893 @property
94+ @override
8995 def minute (self ) -> int : ...
9096 @property
97+ @override
9198 def second (self ) -> int : ...
9299 @property
100+ @override
93101 def microsecond (self ) -> int : ...
94102 @property
95103 def nanosecond (self ) -> int : ...
96104 @property
105+ @override
97106 def tzinfo (self ) -> _tzinfo | None : ...
98107 @property
99108 def tz (self ) -> _tzinfo | None : ...
100109 @property
110+ @override
101111 def fold (self ) -> int : ...
102112 if sys .version_info >= (3 , 12 ):
103113 @classmethod
@@ -107,36 +117,52 @@ class Timestamp(datetime, SupportsIndex):
107117 ) -> Self : ...
108118 else :
109119 @classmethod
120+ @override
110121 def fromtimestamp (cls , t : float , tz : _tzinfo | str | None = None ) -> Self : ...
111122
112123 @classmethod
124+ @override
113125 def today (cls , tz : _tzinfo | str | None = None ) -> Self : ...
114126 @classmethod
127+ @override
115128 def fromordinal (
116129 cls ,
117130 ordinal : int ,
118131 tz : _tzinfo | str | None = None ,
119132 ) -> Self : ...
120133 @classmethod
134+ @override
121135 def now (cls , tz : _tzinfo | str | None = None ) -> Self : ...
122136 # error: Signature of "combine" incompatible with supertype "datetime"
123137 @classmethod
138+ @override
124139 def combine (cls , date : _date , time : _time ) -> Self : ... # type: ignore[override] # pyright: ignore[reportIncompatibleMethodOverride] # pyrefly: ignore[bad-override] # ty: ignore[invalid-method-override]
125140 @classmethod
141+ @override
126142 def fromisoformat (cls , date_string : str ) -> Self : ...
143+ @override
127144 def strftime (self , format : str ) -> str : ...
145+ @override
128146 def __format__ (self , fmt : str ) -> str : ...
147+ @override
129148 def toordinal (self ) -> int : ...
149+ @override
130150 def timetuple (self ) -> struct_time : ...
151+ @override
131152 def timestamp (self ) -> float : ...
153+ @override
132154 def utctimetuple (self ) -> struct_time : ...
155+ @override
133156 def date (self ) -> _date : ...
157+ @override
134158 def time (self ) -> _time : ...
159+ @override
135160 def timetz (self ) -> _time : ...
136161 # Override since fold is more precise than datetime.replace(fold:int)
137162 # Here it is restricted to be 0 or 1 using a Literal
138163 # Violation of Liskov substitution principle
139- def replace ( # type: ignore[override] # pyright: ignore[reportIncompatibleMethodOverride] # pyrefly: ignore # ty: ignore[invalid-method-override]
164+ @override
165+ def replace ( # type: ignore[override] # pyright: ignore[reportIncompatibleMethodOverride] # pyrefly: ignore[bad-override] # ty: ignore[invalid-method-override]
140166 self ,
141167 year : int | None = None ,
142168 month : int | None = None ,
@@ -148,8 +174,11 @@ class Timestamp(datetime, SupportsIndex):
148174 tzinfo : _tzinfo | None = None ,
149175 fold : Literal [0 , 1 ] | None = None ,
150176 ) -> Timestamp : ...
177+ @override
151178 def astimezone (self , tz : _tzinfo | None = None ) -> Self : ...
179+ @override
152180 def ctime (self ) -> str : ...
181+ @override
153182 def isoformat ( # type: ignore[override] # pyright: ignore[reportIncompatibleMethodOverride] # pyrefly: ignore[bad-override] # ty: ignore[invalid-method-override]
154183 self ,
155184 sep : str = "T" ,
@@ -164,13 +193,18 @@ class Timestamp(datetime, SupportsIndex):
164193 ] = "auto" ,
165194 ) -> str : ...
166195 @classmethod
196+ @override
167197 def strptime (cls , date_string : Never , format : Never ) -> Never : ... # type: ignore[override] # pyright: ignore[reportIncompatibleMethodOverride] # pyrefly: ignore[bad-override] # ty: ignore[invalid-method-override]
198+ @override
168199 def utcoffset (self ) -> timedelta | None : ...
200+ @override
169201 def tzname (self ) -> str | None : ...
202+ @override
170203 def dst (self ) -> timedelta | None : ...
171204 # Mypy complains Forward operator "<inequality op>" is not callable, so ignore misc
172205 # for le, lt ge and gt
173206 @overload # type: ignore[override]
207+ @override
174208 def __le__ (self , other : datetime | np .datetime64 | Self ) -> bool : ...
175209 @overload
176210 def __le__ (self , other : DatetimeIndex ) -> np_1darray_bool : ...
@@ -179,6 +213,7 @@ class Timestamp(datetime, SupportsIndex):
179213 @overload
180214 def __le__ (self , other : Series [Timestamp ]) -> Series [bool ]: ...
181215 @overload # type: ignore[override]
216+ @override
182217 def __lt__ (self , other : datetime | np .datetime64 | Self ) -> bool : ...
183218 @overload
184219 def __lt__ (self , other : DatetimeIndex ) -> np_1darray_bool : ...
@@ -187,6 +222,7 @@ class Timestamp(datetime, SupportsIndex):
187222 @overload
188223 def __lt__ (self , other : Series [Timestamp ]) -> Series [bool ]: ...
189224 @overload # type: ignore[override]
225+ @override
190226 def __ge__ (self , other : datetime | np .datetime64 | Self ) -> bool : ...
191227 @overload
192228 def __ge__ (self , other : DatetimeIndex ) -> np_1darray_bool : ...
@@ -195,6 +231,7 @@ class Timestamp(datetime, SupportsIndex):
195231 @overload
196232 def __ge__ (self , other : Series [Timestamp ]) -> Series [bool ]: ...
197233 @overload # type: ignore[override]
234+ @override
198235 def __gt__ (self , other : datetime | np .datetime64 | Self ) -> bool : ...
199236 @overload
200237 def __gt__ (self , other : DatetimeIndex ) -> np_1darray_bool : ...
@@ -204,19 +241,22 @@ class Timestamp(datetime, SupportsIndex):
204241 def __gt__ (self , other : Series [Timestamp ]) -> Series [bool ]: ...
205242 # error: Signature of "__add__" incompatible with supertype "date"/"datetime"
206243 @overload # type: ignore[override]
244+ @override
207245 def __add__ (self , other : np_ndarray_td [ShapeT ]) -> np_ndarray_dt [ShapeT ]: ...
208246 @overload
209247 def __add__ (self , other : timedelta | np .timedelta64 | Tick ) -> Self : ...
210248 @overload
211249 def __add__ (self , other : TimedeltaIndex ) -> DatetimeIndex : ...
212250 @overload
251+ @override
213252 def __radd__ (self , other : timedelta ) -> Self : ...
214253 @overload
215254 def __radd__ (self , other : TimedeltaIndex ) -> DatetimeIndex : ...
216255 @overload
217256 def __radd__ (self , other : np_ndarray_td [ShapeT ]) -> np_ndarray_dt [ShapeT ]: ...
218257 def __rsub__ (self , other : datetime | np .datetime64 ) -> Timedelta : ...
219258 @overload # type: ignore[override]
259+ @override
220260 def __sub__ (self , other : datetime | np .datetime64 ) -> Timedelta : ...
221261 @overload
222262 def __sub__ (self , other : timedelta | np .timedelta64 | Tick ) -> Self : ...
@@ -225,28 +265,38 @@ class Timestamp(datetime, SupportsIndex):
225265 @overload
226266 def __sub__ (self , other : np_ndarray_td [ShapeT ]) -> np_ndarray_dt [ShapeT ]: ...
227267 @overload
228- def __eq__ (self , other : datetime | np .datetime64 | Self ) -> bool : ... # type: ignore[overload-overlap] # pyright: ignore[reportOverlappingOverload]
268+ @override
269+ def __eq__ (self , other : datetime | np .datetime64 | Self ) -> bool : ... # type: ignore[overload-overlap]
229270 @overload
230271 def __eq__ (self , other : Series [Timestamp ]) -> Series [bool ]: ... # type: ignore[overload-overlap]
231272 @overload
232273 def __eq__ (self , other : Index ) -> np_1darray_bool : ... # type: ignore[overload-overlap]
233274 @overload
234275 def __eq__ (self , other : np_ndarray_dt [ShapeT ]) -> np_ndarray_bool [ShapeT ]: ... # type: ignore[overload-overlap]
235276 @overload
236- def __eq__ (self , other : object ) -> Literal [False ]: ...
277+ def __eq__ ( # pyright: ignore[reportOverlappingOverload]
278+ self , other : object
279+ ) -> Literal [False ]: ...
237280 @overload
238- def __ne__ (self , other : datetime | np .datetime64 | Self ) -> bool : ... # type: ignore[overload-overlap] # pyright: ignore[reportOverlappingOverload]
281+ @override
282+ def __ne__ (self , other : datetime | np .datetime64 | Self ) -> bool : ... # type: ignore[overload-overlap]
239283 @overload
240284 def __ne__ (self , other : Series [Timestamp ]) -> Series [bool ]: ... # type: ignore[overload-overlap]
241285 @overload
242286 def __ne__ (self , other : Index ) -> np_1darray_bool : ... # type: ignore[overload-overlap]
243287 @overload
244288 def __ne__ (self , other : np_ndarray_dt [ShapeT ]) -> np_ndarray_bool [ShapeT ]: ... # type: ignore[overload-overlap]
245289 @overload
246- def __ne__ (self , other : object ) -> Literal [True ]: ...
290+ def __ne__ ( # pyright: ignore[reportOverlappingOverload]
291+ self , other : object
292+ ) -> Literal [True ]: ...
293+ @override
247294 def __hash__ (self ) -> int : ...
295+ @override
248296 def weekday (self ) -> int : ...
297+ @override
249298 def isoweekday (self ) -> int : ...
299+ @override
250300 def isocalendar (self ) -> _IsoCalendarDate : ...
251301 @property
252302 def is_leap_year (self ) -> bool : ...
@@ -328,4 +378,5 @@ class Timestamp(datetime, SupportsIndex):
328378 def unit (self ) -> TimeUnit : ...
329379 def as_unit (self , unit : TimeUnit , round_ok : bool = True ) -> Self : ...
330380 # To support slicing
381+ @override
331382 def __index__ (self ) -> int : ...
0 commit comments