Skip to content

Commit cc5eba9

Browse files
authored
REF: remove unnecessary return value from ensure_data (#42830)
1 parent d9cf1bb commit cc5eba9

File tree

1 file changed

+23
-24
lines changed

1 file changed

+23
-24
lines changed

pandas/core/algorithms.py

+23-24
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,6 @@
5555
is_scalar,
5656
is_timedelta64_dtype,
5757
needs_i8_conversion,
58-
pandas_dtype,
5958
)
6059
from pandas.core.dtypes.dtypes import PandasDtype
6160
from pandas.core.dtypes.generic import (
@@ -99,7 +98,7 @@
9998
# --------------- #
10099
# dtype access #
101100
# --------------- #
102-
def _ensure_data(values: ArrayLike) -> tuple[np.ndarray, DtypeObj]:
101+
def _ensure_data(values: ArrayLike) -> np.ndarray:
103102
"""
104103
routine to ensure that our data is of the correct
105104
input dtype for lower-level routines
@@ -114,12 +113,11 @@ def _ensure_data(values: ArrayLike) -> tuple[np.ndarray, DtypeObj]:
114113
115114
Parameters
116115
----------
117-
values : array-like
116+
values : np.ndarray or ExtensionArray
118117
119118
Returns
120119
-------
121-
values : ndarray
122-
pandas_dtype : np.dtype or ExtensionDtype
120+
np.ndarray
123121
"""
124122

125123
if not isinstance(values, ABCMultiIndex):
@@ -128,55 +126,54 @@ def _ensure_data(values: ArrayLike) -> tuple[np.ndarray, DtypeObj]:
128126

129127
# we check some simple dtypes first
130128
if is_object_dtype(values.dtype):
131-
return ensure_object(np.asarray(values)), np.dtype("object")
129+
return ensure_object(np.asarray(values))
132130

133131
elif is_bool_dtype(values.dtype):
134132
if isinstance(values, np.ndarray):
135133
# i.e. actually dtype == np.dtype("bool")
136-
return np.asarray(values).view("uint8"), values.dtype
134+
return np.asarray(values).view("uint8")
137135
else:
138136
# i.e. all-bool Categorical, BooleanArray
139137
try:
140-
return np.asarray(values).astype("uint8", copy=False), values.dtype
138+
return np.asarray(values).astype("uint8", copy=False)
141139
except TypeError:
142140
# GH#42107 we have pd.NAs present
143-
return np.asarray(values), values.dtype
141+
return np.asarray(values)
144142

145143
elif is_integer_dtype(values.dtype):
146-
return np.asarray(values), values.dtype
144+
return np.asarray(values)
147145

148146
elif is_float_dtype(values.dtype):
149147
# Note: checking `values.dtype == "float128"` raises on Windows and 32bit
150148
# error: Item "ExtensionDtype" of "Union[Any, ExtensionDtype, dtype[Any]]"
151149
# has no attribute "itemsize"
152150
if values.dtype.itemsize in [2, 12, 16]: # type: ignore[union-attr]
153151
# we dont (yet) have float128 hashtable support
154-
return ensure_float64(values), values.dtype
155-
return np.asarray(values), values.dtype
152+
return ensure_float64(values)
153+
return np.asarray(values)
156154

157155
elif is_complex_dtype(values.dtype):
158156
# Incompatible return value type (got "Tuple[Union[Any, ExtensionArray,
159157
# ndarray[Any, Any]], Union[Any, ExtensionDtype]]", expected
160158
# "Tuple[ndarray[Any, Any], Union[dtype[Any], ExtensionDtype]]")
161-
return values, values.dtype # type: ignore[return-value]
159+
return values # type: ignore[return-value]
162160

163161
# datetimelike
164162
elif needs_i8_conversion(values.dtype):
165163
if isinstance(values, np.ndarray):
166164
values = sanitize_to_nanoseconds(values)
167165
npvalues = values.view("i8")
168166
npvalues = cast(np.ndarray, npvalues)
169-
return npvalues, values.dtype
167+
return npvalues
170168

171169
elif is_categorical_dtype(values.dtype):
172170
values = cast("Categorical", values)
173171
values = values.codes
174-
dtype = pandas_dtype("category")
175-
return values, dtype
172+
return values
176173

177174
# we have failed, return object
178175
values = np.asarray(values, dtype=object)
179-
return ensure_object(values), np.dtype("object")
176+
return ensure_object(values)
180177

181178

182179
def _reconstruct_data(
@@ -268,7 +265,7 @@ def _get_hashtable_algo(values: np.ndarray):
268265
htable : HashTable subclass
269266
values : ndarray
270267
"""
271-
values, _ = _ensure_data(values)
268+
values = _ensure_data(values)
272269

273270
ndtype = _check_object_for_strings(values)
274271
htable = _hashtables[ndtype]
@@ -279,7 +276,7 @@ def _get_values_for_rank(values: ArrayLike) -> np.ndarray:
279276
if is_categorical_dtype(values):
280277
values = cast("Categorical", values)._values_for_rank()
281278

282-
values, _ = _ensure_data(values)
279+
values = _ensure_data(values)
283280
if values.dtype.kind in ["i", "u", "f"]:
284281
# rank_t includes only object, int64, uint64, float64
285282
dtype = values.dtype.kind + "8"
@@ -747,7 +744,8 @@ def factorize(
747744
codes, uniques = values.factorize(na_sentinel=na_sentinel)
748745
dtype = original.dtype
749746
else:
750-
values, dtype = _ensure_data(values)
747+
dtype = values.dtype
748+
values = _ensure_data(values)
751749
na_value: Scalar
752750

753751
if original.dtype.kind in ["m", "M"]:
@@ -886,7 +884,7 @@ def value_counts_arraylike(values, dropna: bool):
886884
"""
887885
values = _ensure_arraylike(values)
888886
original = values
889-
values, _ = _ensure_data(values)
887+
values = _ensure_data(values)
890888

891889
# TODO: handle uint8
892890
keys, counts = htable.value_count(values, dropna)
@@ -923,7 +921,7 @@ def duplicated(
923921
-------
924922
duplicated : ndarray[bool]
925923
"""
926-
values, _ = _ensure_data(values)
924+
values = _ensure_data(values)
927925
return htable.duplicated(values, keep=keep)
928926

929927

@@ -959,7 +957,7 @@ def mode(values, dropna: bool = True) -> Series:
959957
mask = values.isnull()
960958
values = values[~mask]
961959

962-
values, _ = _ensure_data(values)
960+
values = _ensure_data(values)
963961

964962
npresult = htable.mode(values, dropna=dropna)
965963
try:
@@ -1261,7 +1259,8 @@ def compute(self, method: str) -> Series:
12611259
return dropped.sort_values(ascending=ascending).head(n)
12621260

12631261
# fast method
1264-
arr, new_dtype = _ensure_data(dropped.values)
1262+
new_dtype = dropped.dtype
1263+
arr = _ensure_data(dropped.values)
12651264
if method == "nlargest":
12661265
arr = -arr
12671266
if is_integer_dtype(new_dtype):

0 commit comments

Comments
 (0)