Skip to content

Commit c4d657e

Browse files
committed
1 parent 34703d7 commit c4d657e

File tree

4 files changed

+35
-13
lines changed

4 files changed

+35
-13
lines changed

pandas-stubs/_typing.pyi

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -824,7 +824,7 @@ MaskType: TypeAlias = Series[bool] | np_ndarray_bool | list[bool]
824824

825825
# Scratch types for generics
826826

827-
# Closure upon add, sub, mul
827+
# Closure upon add and mul
828828
SeriesDTypeClosure: TypeAlias = (
829829
str
830830
| bytes

pandas-stubs/core/indexes/accessors.pyi

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -319,7 +319,7 @@ class TimedeltaProperties(
319319
):
320320
@property
321321
def unit(self) -> TimeUnit: ...
322-
def as_unit(self, unit: TimeUnit) -> TimedeltaSeries: ...
322+
def as_unit(self, unit: TimeUnit) -> Series[Timedelta]: ...
323323

324324
_PeriodDTReturnTypes = TypeVar(
325325
"_PeriodDTReturnTypes", bound=Series[Timestamp] | DatetimeIndex
@@ -438,6 +438,10 @@ class _dtDescriptor(CombinedDatetimelikeProperties, Generic[S1]):
438438
self, instance: Series[Timestamp], owner: Any
439439
) -> TimestampProperties: ...
440440
@overload
441+
def __get__(
442+
self, instance: Series[Timedelta], owner: Any
443+
) -> TimedeltaProperties: ...
444+
@overload
441445
def __get__(
442446
self, instance: Series[S1], owner: Any
443447
) -> CombinedDatetimelikeProperties: ...

pandas-stubs/core/series.pyi

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2831,7 +2831,7 @@ class TimedeltaSeries(Series[Timedelta]):
28312831
self, other: num | Sequence[num] | Series[int] | Series[float]
28322832
) -> TimedeltaSeries: ...
28332833
def unique(self) -> TimedeltaArray: ... # type: ignore[override] # pyright: ignore[reportIncompatibleMethodOverride]
2834-
def __sub__( # type: ignore[override] # pyright: ignore[reportIncompatibleMethodOverride]
2834+
def __sub__( # type: ignore[override]
28352835
self,
28362836
other: (
28372837
timedelta | Timedelta | TimedeltaSeries | TimedeltaIndex | np.timedelta64
@@ -2889,7 +2889,9 @@ class TimedeltaSeries(Series[Timedelta]):
28892889
),
28902890
) -> Series[int]: ...
28912891
@property
2892-
def dt(self) -> TimedeltaProperties: ... # type: ignore[override] # pyright: ignore[reportIncompatibleMethodOverride]
2892+
def dt(
2893+
self,
2894+
) -> TimedeltaProperties: ... # pyright: ignore[reportIncompatibleMethodOverride]
28932895
def mean( # type: ignore[override] # pyright: ignore[reportIncompatibleMethodOverride]
28942896
self,
28952897
axis: AxisIndex | None = ...,
@@ -2934,7 +2936,7 @@ class TimedeltaSeries(Series[Timedelta]):
29342936
class PeriodSeries(Series[Period]):
29352937
@property
29362938
def dt(self) -> PeriodProperties: ... # type: ignore[override] # pyright: ignore[reportIncompatibleMethodOverride]
2937-
def __sub__(self, other: PeriodSeries) -> OffsetSeries: ... # type: ignore[override] # pyright: ignore[reportIncompatibleMethodOverride]
2939+
def __sub__(self, other: PeriodSeries) -> OffsetSeries: ... # type: ignore[override]
29382940
def diff(self, periods: int = ...) -> OffsetSeries: ... # type: ignore[override] # pyright: ignore[reportIncompatibleMethodOverride]
29392941
def cumprod(
29402942
self,

tests/test_timefuncs.py

Lines changed: 24 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -584,10 +584,26 @@ def test_series_dt_accessors() -> None:
584584
check(assert_type(s2.dt.to_pytimedelta(), np.ndarray), np.ndarray)
585585
check(assert_type(s2.dt.total_seconds(), "pd.Series[float]"), pd.Series, float)
586586
check(assert_type(s2.dt.unit, TimeUnit), str)
587-
check(assert_type(s2.dt.as_unit("s"), "TimedeltaSeries"), pd.Series, pd.Timedelta)
588-
check(assert_type(s2.dt.as_unit("ms"), "TimedeltaSeries"), pd.Series, pd.Timedelta)
589-
check(assert_type(s2.dt.as_unit("us"), "TimedeltaSeries"), pd.Series, pd.Timedelta)
590-
check(assert_type(s2.dt.as_unit("ns"), "TimedeltaSeries"), pd.Series, pd.Timedelta)
587+
check(
588+
assert_type(s2.dt.as_unit("s"), "pd.Series[pd.Timedelta]"),
589+
pd.Series,
590+
pd.Timedelta,
591+
)
592+
check(
593+
assert_type(s2.dt.as_unit("ms"), "pd.Series[pd.Timedelta]"),
594+
pd.Series,
595+
pd.Timedelta,
596+
)
597+
check(
598+
assert_type(s2.dt.as_unit("us"), "pd.Series[pd.Timedelta]"),
599+
pd.Series,
600+
pd.Timedelta,
601+
)
602+
check(
603+
assert_type(s2.dt.as_unit("ns"), "pd.Series[pd.Timedelta]"),
604+
pd.Series,
605+
pd.Timedelta,
606+
)
591607

592608
# Checks for general Series other than Series[Timestamp] and TimedeltaSeries
593609

@@ -622,22 +638,22 @@ def test_series_dt_accessors() -> None:
622638

623639
check(assert_type(s5.dt.unit, TimeUnit), str)
624640
check(
625-
assert_type(s5.dt.as_unit("s"), "pd.Series[pd.Timedelta]"), # type: ignore[assert-type]
641+
assert_type(s5.dt.as_unit("s"), "pd.Series[pd.Timedelta]"),
626642
pd.Series,
627643
pd.Timedelta,
628644
)
629645
check(
630-
assert_type(s5.dt.as_unit("ms"), "pd.Series[pd.Timedelta]"), # type: ignore[assert-type]
646+
assert_type(s5.dt.as_unit("ms"), "pd.Series[pd.Timedelta]"),
631647
pd.Series,
632648
pd.Timedelta,
633649
)
634650
check(
635-
assert_type(s5.dt.as_unit("us"), "pd.Series[pd.Timedelta]"), # type: ignore[assert-type]
651+
assert_type(s5.dt.as_unit("us"), "pd.Series[pd.Timedelta]"),
636652
pd.Series,
637653
pd.Timedelta,
638654
)
639655
check(
640-
assert_type(s5.dt.as_unit("ns"), "pd.Series[pd.Timedelta]"), # type: ignore[assert-type]
656+
assert_type(s5.dt.as_unit("ns"), "pd.Series[pd.Timedelta]"),
641657
pd.Series,
642658
pd.Timedelta,
643659
)

0 commit comments

Comments
 (0)