Skip to content

Commit 00ceed4

Browse files
TYP: remove ignores in refine_percentiles (#42389)
1 parent d002911 commit 00ceed4

File tree

1 file changed

+12
-12
lines changed

1 file changed

+12
-12
lines changed

pandas/core/describe.py

+12-12
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
)
1212
from typing import (
1313
TYPE_CHECKING,
14+
Any,
1415
Callable,
1516
Sequence,
1617
cast,
@@ -50,7 +51,7 @@ def describe_ndframe(
5051
include: str | Sequence[str] | None,
5152
exclude: str | Sequence[str] | None,
5253
datetime_is_numeric: bool,
53-
percentiles: Sequence[float] | None,
54+
percentiles: Sequence[float] | np.ndarray | None,
5455
) -> FrameOrSeries:
5556
"""Describe series or dataframe.
5657
@@ -111,7 +112,7 @@ def __init__(self, obj: DataFrame | Series, datetime_is_numeric: bool):
111112
self.datetime_is_numeric = datetime_is_numeric
112113

113114
@abstractmethod
114-
def describe(self, percentiles: Sequence[float]) -> DataFrame | Series:
115+
def describe(self, percentiles: Sequence[float] | np.ndarray) -> DataFrame | Series:
115116
"""Do describe either series or dataframe.
116117
117118
Parameters
@@ -126,7 +127,7 @@ class SeriesDescriber(NDFrameDescriberAbstract):
126127

127128
obj: Series
128129

129-
def describe(self, percentiles: Sequence[float]) -> Series:
130+
def describe(self, percentiles: Sequence[float] | np.ndarray) -> Series:
130131
describe_func = select_describe_func(
131132
self.obj,
132133
self.datetime_is_numeric,
@@ -165,7 +166,7 @@ def __init__(
165166

166167
super().__init__(obj, datetime_is_numeric=datetime_is_numeric)
167168

168-
def describe(self, percentiles: Sequence[float]) -> DataFrame:
169+
def describe(self, percentiles: Sequence[float] | np.ndarray) -> DataFrame:
169170
data = self._select_data()
170171

171172
ldesc: list[Series] = []
@@ -387,18 +388,19 @@ def select_describe_func(
387388
return describe_categorical_1d
388389

389390

390-
def refine_percentiles(percentiles: Sequence[float] | None) -> Sequence[float]:
391-
"""Ensure that percentiles are unique and sorted.
391+
def refine_percentiles(
392+
percentiles: Sequence[float] | np.ndarray | None,
393+
) -> np.ndarray[Any, np.dtype[np.float64]]:
394+
"""
395+
Ensure that percentiles are unique and sorted.
392396
393397
Parameters
394398
----------
395399
percentiles : list-like of numbers, optional
396400
The percentiles to include in the output.
397401
"""
398402
if percentiles is None:
399-
# error: Incompatible return value type (got "ndarray", expected
400-
# "Sequence[float]")
401-
return np.array([0.25, 0.5, 0.75]) # type: ignore[return-value]
403+
return np.array([0.25, 0.5, 0.75])
402404

403405
# explicit conversion of `percentiles` to list
404406
percentiles = list(percentiles)
@@ -410,9 +412,7 @@ def refine_percentiles(percentiles: Sequence[float] | None) -> Sequence[float]:
410412
if 0.5 not in percentiles:
411413
percentiles.append(0.5)
412414

413-
# error: Incompatible types in assignment (expression has type "ndarray", variable
414-
# has type "Optional[Sequence[float]]")
415-
percentiles = np.asarray(percentiles) # type: ignore[assignment]
415+
percentiles = np.asarray(percentiles)
416416

417417
# sort and check for duplicates
418418
unique_pcts = np.unique(percentiles)

0 commit comments

Comments
 (0)