Skip to content

Commit 3dc2b24

Browse files
committed
fix: #718 mean
1 parent a3d5e58 commit 3dc2b24

File tree

2 files changed

+22
-81
lines changed

2 files changed

+22
-81
lines changed

pandas-stubs/core/series.pyi

Lines changed: 18 additions & 68 deletions
Original file line numberDiff line numberDiff line change
@@ -205,7 +205,7 @@ _nonseries_timedelta: TypeAlias = _scalar_timedelta | _vector_timedelta
205205
_nonseries_int: TypeAlias = int | np_ndarray_anyint | Sequence[int]
206206

207207
_T_INT = TypeVar("_T_INT", bound=int)
208-
_T_STAMP = TypeVar("_T_STAMP", bound=Timestamp)
208+
_T_STAMP_AND_DELTA = TypeVar("_T_STAMP_AND_DELTA", bound=Timestamp | Timedelta)
209209

210210
class _iLocIndexerSeries(_iLocIndexer, Generic[S1]):
211211
# get item
@@ -1620,15 +1620,7 @@ class Series(IndexOpsMixin[S1], NDFrame):
16201620
) -> Never: ...
16211621
@overload
16221622
def __add__(
1623-
self: Series[Timestamp],
1624-
other: (
1625-
Timedelta
1626-
| Series[Timedelta]
1627-
| TimedeltaIndex
1628-
| np.timedelta64
1629-
| timedelta
1630-
| BaseOffset
1631-
),
1623+
self: Series[Timestamp], other: _nonseries_timedelta | Series[Timedelta]
16321624
) -> Series[Timestamp]: ...
16331625
@overload
16341626
def __add__(self: Series[Timedelta], other: Period) -> PeriodSeries: ...
@@ -1713,7 +1705,7 @@ class Series(IndexOpsMixin[S1], NDFrame):
17131705
def __or__(self, other: _nonseries_int | Series[int]) -> Series[int]: ...
17141706
@overload
17151707
def __radd__(
1716-
self: Series[Timestamp], other: Series[Timedelta] | np.timedelta64 | timedelta
1708+
self: Series[Timestamp], other: _nonseries_timedelta | Series[Timedelta]
17171709
) -> Series[Timestamp]: ...
17181710
@overload
17191711
def __radd__(
@@ -1734,14 +1726,7 @@ class Series(IndexOpsMixin[S1], NDFrame):
17341726
def __rdivmod__(self, other: num | _ListLike | Series[S1]) -> Series[S1]: ... # type: ignore[override] # pyright: ignore[reportIncompatibleMethodOverride]
17351727
@overload
17361728
def __rfloordiv__(
1737-
self: Series[Timedelta],
1738-
other: (
1739-
timedelta
1740-
| Series[Timedelta]
1741-
| np.timedelta64
1742-
| TimedeltaIndex
1743-
| Sequence[timedelta]
1744-
),
1729+
self: Series[Timedelta], other: _nonseries_timedelta | Series[Timedelta]
17451730
) -> Series[int]: ...
17461731
@overload
17471732
def __rfloordiv__(self, other: num | _ListLike | Series[S1]) -> Series[S1]: ...
@@ -1764,16 +1749,7 @@ class Series(IndexOpsMixin[S1], NDFrame):
17641749
def __rsub__(self, other: num | _ListLike | Series[S1]) -> Series: ...
17651750
@overload
17661751
def __rtruediv__(
1767-
self: Series[Timedelta],
1768-
other: (
1769-
timedelta
1770-
| Timedelta
1771-
| Sequence[Timedelta]
1772-
| Series[Timedelta]
1773-
| np.timedelta64
1774-
| TimedeltaIndex
1775-
| Sequence[timedelta]
1776-
),
1752+
self: Series[Timedelta], other: _nonseries_timedelta | Series[Timedelta]
17771753
) -> Series[float]: ...
17781754
@overload
17791755
def __rtruediv__(self, other: num | _ListLike | Series[S1] | Path) -> Series: ...
@@ -1791,15 +1767,7 @@ class Series(IndexOpsMixin[S1], NDFrame):
17911767
) -> Series[int]: ...
17921768
@overload
17931769
def __sub__(
1794-
self: Series[Timestamp],
1795-
other: (
1796-
Timedelta
1797-
| Series[Timedelta]
1798-
| TimedeltaIndex
1799-
| np.timedelta64
1800-
| timedelta
1801-
| BaseOffset
1802-
),
1770+
self: Series[Timestamp], other: _nonseries_timedelta | Series[Timedelta]
18031771
) -> Series[Timestamp]: ...
18041772
@overload
18051773
def __sub__(
@@ -1816,21 +1784,12 @@ class Series(IndexOpsMixin[S1], NDFrame):
18161784
def __sub__(self, other: num | _ListLike | Series) -> Series: ...
18171785
@overload
18181786
def __truediv__(
1819-
self: Series[_T_STAMP],
1787+
self: Series[_T_STAMP_AND_DELTA],
18201788
other: float | Series[int] | Series[float] | Sequence[float],
18211789
) -> Series[Timestamp]: ...
18221790
@overload
18231791
def __truediv__(
1824-
self: Series[Timedelta],
1825-
other: (
1826-
timedelta
1827-
| Timedelta
1828-
| Sequence[Timedelta]
1829-
| Series[Timedelta]
1830-
| np.timedelta64
1831-
| TimedeltaIndex
1832-
| Sequence[timedelta]
1833-
),
1792+
self: Series[Timedelta], other: _nonseries_timedelta | Series[Timedelta]
18341793
) -> Series[float]: ...
18351794
@overload
18361795
def __truediv__(
@@ -2023,25 +1982,16 @@ class Series(IndexOpsMixin[S1], NDFrame):
20231982
numeric_only: _bool = ...,
20241983
**kwargs: Any,
20251984
) -> S1: ...
2026-
# @overload
2027-
# def mean(
2028-
# self: Series[Timestamp],
2029-
# axis: AxisIndex | None = ...,
2030-
# skipna: _bool = ...,
2031-
# level: None = ...,
2032-
# numeric_only: _bool = ...,
2033-
# **kwargs: Any,
2034-
# ) -> Timestamp: ...
2035-
# @overload
2036-
# def mean(
2037-
# self: Series[Timedelta],
2038-
# axis: AxisIndex | None = ...,
2039-
# skipna: _bool = ...,
2040-
# level: None = ...,
2041-
# numeric_only: _bool = ...,
2042-
# **kwargs: Any,
2043-
# ) -> Timedelta: ...
2044-
# @overload
1985+
@overload
1986+
def mean(
1987+
self: Series[_T_STAMP_AND_DELTA],
1988+
axis: AxisIndex | None = ...,
1989+
skipna: _bool = ...,
1990+
level: None = ...,
1991+
numeric_only: _bool = ...,
1992+
**kwargs: Any,
1993+
) -> _T_STAMP_AND_DELTA: ...
1994+
@overload
20451995
def mean(
20461996
self,
20471997
axis: AxisIndex | None = ...,

tests/test_timefuncs.py

Lines changed: 4 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -400,10 +400,7 @@ def test_series_dt_accessors() -> None:
400400
upper="2.3.99",
401401
):
402402
check(
403-
assert_type(
404-
s0.dt.to_pydatetime(),
405-
np.ndarray,
406-
),
403+
assert_type(s0.dt.to_pydatetime(), np.ndarray),
407404
np.ndarray if PD_LTE_23 else pd.Series,
408405
dt.datetime,
409406
)
@@ -598,13 +595,7 @@ def test_series_dt_accessors() -> None:
598595
"The behavior of TimedeltaProperties.to_pytimedelta is deprecated",
599596
lower="2.3.99",
600597
):
601-
check(
602-
assert_type(
603-
s2.dt.to_pytimedelta(),
604-
np.ndarray,
605-
),
606-
np.ndarray,
607-
)
598+
check(assert_type(s2.dt.to_pytimedelta(), np.ndarray), np.ndarray)
608599
check(assert_type(s2.dt.total_seconds(), "pd.Series[float]"), pd.Series, float)
609600
check(assert_type(s2.dt.unit, TimeUnit), str)
610601
check(
@@ -1497,7 +1488,7 @@ def test_timedeltaseries_add_timestampseries() -> None:
14971488

14981489
def test_mean_median_std() -> None:
14991490
s = pd.Series([pd.Timedelta("1 ns"), pd.Timedelta("2 ns"), pd.Timedelta("3 ns")])
1500-
# check(assert_type(s.mean(), pd.Timedelta), pd.Timedelta)
1491+
check(assert_type(s.mean(), pd.Timedelta), pd.Timedelta)
15011492
check(assert_type(s.median(), pd.Timedelta), pd.Timedelta)
15021493
check(assert_type(s.std(), pd.Timedelta), pd.Timedelta)
15031494

@@ -1508,7 +1499,7 @@ def test_mean_median_std() -> None:
15081499
pd.Timestamp("2021-01-03"),
15091500
]
15101501
)
1511-
# check(assert_type(s2.mean(), pd.Timestamp), pd.Timestamp)
1502+
check(assert_type(s2.mean(), pd.Timestamp), pd.Timestamp)
15121503
check(assert_type(s2.median(), pd.Timestamp), pd.Timestamp)
15131504
check(assert_type(s2.std(), pd.Timedelta), pd.Timedelta)
15141505

0 commit comments

Comments
 (0)