Skip to content

Commit db4891f

Browse files
committed
fix: #718 mean
1 parent a04854f commit db4891f

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
@@ -190,7 +190,7 @@ _nonseries_timedelta: TypeAlias = _scalar_timedelta | _vector_timedelta
190190
_nonseries_int: TypeAlias = int | np_ndarray_anyint | Sequence[int]
191191

192192
_T_INT = TypeVar("_T_INT", bound=int)
193-
_T_STAMP = TypeVar("_T_STAMP", bound=Timestamp)
193+
_T_STAMP_AND_DELTA = TypeVar("_T_STAMP_AND_DELTA", bound=Timestamp | Timedelta)
194194

195195
class _iLocIndexerSeries(_iLocIndexer, Generic[S1]):
196196
# get item
@@ -1602,15 +1602,7 @@ class Series(IndexOpsMixin[S1], NDFrame):
16021602
) -> Series[int]: ...
16031603
@overload
16041604
def __add__(
1605-
self: Series[Timestamp],
1606-
other: (
1607-
Timedelta
1608-
| Series[Timedelta]
1609-
| TimedeltaIndex
1610-
| np.timedelta64
1611-
| timedelta
1612-
| BaseOffset
1613-
),
1605+
self: Series[Timestamp], other: _nonseries_timedelta | Series[Timedelta]
16141606
) -> Series[Timestamp]: ...
16151607
@overload
16161608
def __add__(self: Series[Timedelta], other: Period) -> PeriodSeries: ...
@@ -1696,7 +1688,7 @@ class Series(IndexOpsMixin[S1], NDFrame):
16961688
def __or__(self, other: _nonseries_int | Series[int]) -> Series[int]: ...
16971689
@overload
16981690
def __radd__(
1699-
self: Series[Timestamp], other: Series[Timedelta] | np.timedelta64 | timedelta
1691+
self: Series[Timestamp], other: _nonseries_timedelta | Series[Timedelta]
17001692
) -> Series[Timestamp]: ...
17011693
@overload
17021694
def __radd__(
@@ -1717,14 +1709,7 @@ class Series(IndexOpsMixin[S1], NDFrame):
17171709
def __rdivmod__(self, other: num | _ListLike | Series[S1]) -> Series[S1]: ... # type: ignore[override] # pyright: ignore[reportIncompatibleMethodOverride]
17181710
@overload
17191711
def __rfloordiv__(
1720-
self: Series[Timedelta],
1721-
other: (
1722-
timedelta
1723-
| Series[Timedelta]
1724-
| np.timedelta64
1725-
| TimedeltaIndex
1726-
| Sequence[timedelta]
1727-
),
1712+
self: Series[Timedelta], other: _nonseries_timedelta | Series[Timedelta]
17281713
) -> Series[int]: ...
17291714
@overload
17301715
def __rfloordiv__(self, other: num | _ListLike | Series[S1]) -> Series[S1]: ...
@@ -1747,16 +1732,7 @@ class Series(IndexOpsMixin[S1], NDFrame):
17471732
def __rsub__(self, other: num | _ListLike | Series[S1]) -> Series: ...
17481733
@overload
17491734
def __rtruediv__(
1750-
self: Series[Timedelta],
1751-
other: (
1752-
timedelta
1753-
| Timedelta
1754-
| Sequence[Timedelta]
1755-
| Series[Timedelta]
1756-
| np.timedelta64
1757-
| TimedeltaIndex
1758-
| Sequence[timedelta]
1759-
),
1735+
self: Series[Timedelta], other: _nonseries_timedelta | Series[Timedelta]
17601736
) -> Series[float]: ...
17611737
@overload
17621738
def __rtruediv__(self, other: num | _ListLike | Series[S1] | Path) -> Series: ...
@@ -1774,15 +1750,7 @@ class Series(IndexOpsMixin[S1], NDFrame):
17741750
) -> Series[int]: ...
17751751
@overload
17761752
def __sub__(
1777-
self: Series[Timestamp],
1778-
other: (
1779-
Timedelta
1780-
| Series[Timedelta]
1781-
| TimedeltaIndex
1782-
| np.timedelta64
1783-
| timedelta
1784-
| BaseOffset
1785-
),
1753+
self: Series[Timestamp], other: _nonseries_timedelta | Series[Timedelta]
17861754
) -> Series[Timestamp]: ...
17871755
@overload
17881756
def __sub__(
@@ -1799,21 +1767,12 @@ class Series(IndexOpsMixin[S1], NDFrame):
17991767
def __sub__(self, other: num | _ListLike | Series) -> Series: ...
18001768
@overload
18011769
def __truediv__(
1802-
self: Series[_T_STAMP],
1770+
self: Series[_T_STAMP_AND_DELTA],
18031771
other: float | Series[int] | Series[float] | Sequence[float],
18041772
) -> Series[Timestamp]: ...
18051773
@overload
18061774
def __truediv__(
1807-
self: Series[Timedelta],
1808-
other: (
1809-
timedelta
1810-
| Timedelta
1811-
| Sequence[Timedelta]
1812-
| Series[Timedelta]
1813-
| np.timedelta64
1814-
| TimedeltaIndex
1815-
| Sequence[timedelta]
1816-
),
1775+
self: Series[Timedelta], other: _nonseries_timedelta | Series[Timedelta]
18171776
) -> Series[float]: ...
18181777
@overload
18191778
def __truediv__(
@@ -2006,25 +1965,16 @@ class Series(IndexOpsMixin[S1], NDFrame):
20061965
numeric_only: _bool = ...,
20071966
**kwargs: Any,
20081967
) -> S1: ...
2009-
# @overload
2010-
# def mean(
2011-
# self: Series[Timestamp],
2012-
# axis: AxisIndex | None = ...,
2013-
# skipna: _bool = ...,
2014-
# level: None = ...,
2015-
# numeric_only: _bool = ...,
2016-
# **kwargs: Any,
2017-
# ) -> Timestamp: ...
2018-
# @overload
2019-
# def mean(
2020-
# self: Series[Timedelta],
2021-
# axis: AxisIndex | None = ...,
2022-
# skipna: _bool = ...,
2023-
# level: None = ...,
2024-
# numeric_only: _bool = ...,
2025-
# **kwargs: Any,
2026-
# ) -> Timedelta: ...
2027-
# @overload
1968+
@overload
1969+
def mean(
1970+
self: Series[_T_STAMP_AND_DELTA],
1971+
axis: AxisIndex | None = ...,
1972+
skipna: _bool = ...,
1973+
level: None = ...,
1974+
numeric_only: _bool = ...,
1975+
**kwargs: Any,
1976+
) -> _T_STAMP_AND_DELTA: ...
1977+
@overload
20281978
def mean(
20291979
self,
20301980
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)