@@ -45,7 +45,15 @@ class Properties(PandasDelegate, PandasObject, NoNewAttributesMixin):
45
45
46
46
_DTFieldOpsReturnType = TypeVar ("_DTFieldOpsReturnType" , Series [int ], IntegerIndex )
47
47
48
- class _DatetimeFieldOps (Generic [_DTFieldOpsReturnType ]):
48
+ class _DatetimeFieldOps (
49
+ _DayLikeFieldOps [_DTFieldOpsReturnType ], _MiniSeconds [_DTFieldOpsReturnType ]
50
+ ): ...
51
+ class PeriodIndexFieldOps (
52
+ _DayLikeFieldOps [IntegerIndex ],
53
+ _PeriodProperties [DatetimeIndex , IntegerIndex , Index , DatetimeIndex , PeriodIndex ],
54
+ ): ...
55
+
56
+ class _DayLikeFieldOps (Generic [_DTFieldOpsReturnType ]):
49
57
@property
50
58
def year (self ) -> _DTFieldOpsReturnType : ...
51
59
@property
@@ -74,6 +82,8 @@ class _DatetimeFieldOps(Generic[_DTFieldOpsReturnType]):
74
82
def days_in_month (self ) -> _DTFieldOpsReturnType : ...
75
83
@property
76
84
def daysinmonth (self ) -> _DTFieldOpsReturnType : ...
85
+
86
+ class _MiniSeconds (Generic [_DTFieldOpsReturnType ]):
77
87
@property
78
88
def microsecond (self ) -> _DTFieldOpsReturnType : ...
79
89
@property
@@ -295,28 +305,44 @@ class TimedeltaProperties(
295
305
_DatetimeRoundingMethods [TimedeltaSeries ],
296
306
): ...
297
307
298
- class _PeriodProperties :
308
+ _PeriodDTReturnTypes = TypeVar ("_PeriodDTReturnTypes" , TimestampSeries , DatetimeIndex )
309
+ _PeriodIntReturnTypes = TypeVar ("_PeriodIntReturnTypes" , Series [int ], IntegerIndex )
310
+ _PeriodStrReturnTypes = TypeVar ("_PeriodStrReturnTypes" , Series [str ], Index )
311
+ _PeriodDTAReturnTypes = TypeVar ("_PeriodDTAReturnTypes" , DatetimeArray , DatetimeIndex )
312
+ _PeriodPAReturnTypes = TypeVar ("_PeriodPAReturnTypes" , PeriodArray , PeriodIndex )
313
+
314
+ class _PeriodProperties (
315
+ Generic [
316
+ _PeriodDTReturnTypes ,
317
+ _PeriodIntReturnTypes ,
318
+ _PeriodStrReturnTypes ,
319
+ _PeriodDTAReturnTypes ,
320
+ _PeriodPAReturnTypes ,
321
+ ]
322
+ ):
299
323
@property
300
- def start_time (self ) -> TimestampSeries : ...
324
+ def start_time (self ) -> _PeriodDTReturnTypes : ...
301
325
@property
302
- def end_time (self ) -> TimestampSeries : ...
326
+ def end_time (self ) -> _PeriodDTReturnTypes : ...
303
327
@property
304
- def qyear (self ) -> Series [ int ] : ...
305
- def strftime (self , date_format : str ) -> Series [ str ] : ...
328
+ def qyear (self ) -> _PeriodIntReturnTypes : ...
329
+ def strftime (self , date_format : str ) -> _PeriodStrReturnTypes : ...
306
330
def to_timestamp (
307
331
self ,
308
332
freq : str | DateOffset | None = ...,
309
333
how : TimestampConvention = ...,
310
- ) -> DatetimeArray : ...
334
+ ) -> _PeriodDTAReturnTypes : ...
311
335
def asfreq (
312
336
self ,
313
337
freq : str | DateOffset | None = ...,
314
338
how : Literal ["E" , "END" , "FINISH" , "S" , "START" , "BEGIN" ] = ...,
315
- ) -> PeriodArray : ...
339
+ ) -> _PeriodPAReturnTypes : ...
316
340
317
341
class PeriodProperties (
318
342
Properties ,
319
- _PeriodProperties ,
343
+ _PeriodProperties [
344
+ TimestampSeries , Series [int ], Series [str ], DatetimeArray , PeriodArray
345
+ ],
320
346
_DatetimeFieldOps [Series [int ]],
321
347
_IsLeapYearProperty ,
322
348
_FreqProperty [BaseOffset ],
0 commit comments