Skip to content

Commit 935000e

Browse files
authored
TYP: assorted annotations (#39798)
1 parent 95eee9d commit 935000e

File tree

11 files changed

+122
-77
lines changed

11 files changed

+122
-77
lines changed

pandas/_libs/reduction.pyx

+4-6
Original file line numberDiff line numberDiff line change
@@ -109,9 +109,8 @@ cdef class SeriesBinGrouper(_BaseGrouper):
109109
ndarray arr, index, dummy_arr, dummy_index
110110
object values, f, bins, typ, ityp, name
111111

112-
def __init__(self, object series, object f, object bins, object dummy):
112+
def __init__(self, object series, object f, object bins):
113113

114-
assert dummy is not None # always obj[:0]
115114
assert len(bins) > 0 # otherwise we get IndexError in get_result
116115

117116
self.bins = bins
@@ -127,6 +126,7 @@ cdef class SeriesBinGrouper(_BaseGrouper):
127126
self.index = series.index.values
128127
self.name = series.name
129128

129+
dummy = series.iloc[:0]
130130
self.dummy_arr, self.dummy_index = self._check_dummy(dummy)
131131

132132
# kludge for #1688
@@ -203,10 +203,7 @@ cdef class SeriesGrouper(_BaseGrouper):
203203
object f, labels, values, typ, ityp, name
204204

205205
def __init__(self, object series, object f, object labels,
206-
Py_ssize_t ngroups, object dummy):
207-
208-
# in practice we always pass obj.iloc[:0] or equivalent
209-
assert dummy is not None
206+
Py_ssize_t ngroups):
210207

211208
if len(series) == 0:
212209
# get_result would never assign `result`
@@ -225,6 +222,7 @@ cdef class SeriesGrouper(_BaseGrouper):
225222
self.index = series.index.values
226223
self.name = series.name
227224

225+
dummy = series.iloc[:0]
228226
self.dummy_arr, self.dummy_index = self._check_dummy(dummy)
229227
self.ngroups = ngroups
230228

pandas/core/algorithms.py

+39-15
Original file line numberDiff line numberDiff line change
@@ -263,7 +263,7 @@ def _reconstruct_data(
263263
return values
264264

265265

266-
def _ensure_arraylike(values):
266+
def _ensure_arraylike(values) -> ArrayLike:
267267
"""
268268
ensure that we are arraylike if not already
269269
"""
@@ -323,7 +323,7 @@ def get_data_algo(values: ArrayLike):
323323
return htable, values
324324

325325

326-
def _check_object_for_strings(values) -> str:
326+
def _check_object_for_strings(values: np.ndarray) -> str:
327327
"""
328328
Check if we can use string hashtable instead of object hashtable.
329329
@@ -527,7 +527,11 @@ def f(c, v):
527527

528528

529529
def factorize_array(
530-
values: np.ndarray, na_sentinel: int = -1, size_hint=None, na_value=None, mask=None
530+
values: np.ndarray,
531+
na_sentinel: int = -1,
532+
size_hint: Optional[int] = None,
533+
na_value=None,
534+
mask: Optional[np.ndarray] = None,
531535
) -> Tuple[np.ndarray, np.ndarray]:
532536
"""
533537
Factorize an array-like to codes and uniques.
@@ -982,13 +986,13 @@ def mode(values, dropna: bool = True) -> Series:
982986

983987

984988
def rank(
985-
values,
989+
values: ArrayLike,
986990
axis: int = 0,
987991
method: str = "average",
988992
na_option: str = "keep",
989993
ascending: bool = True,
990994
pct: bool = False,
991-
):
995+
) -> np.ndarray:
992996
"""
993997
Rank the values along a given axis.
994998
@@ -1038,7 +1042,12 @@ def rank(
10381042
return ranks
10391043

10401044

1041-
def checked_add_with_arr(arr, b, arr_mask=None, b_mask=None):
1045+
def checked_add_with_arr(
1046+
arr: np.ndarray,
1047+
b,
1048+
arr_mask: Optional[np.ndarray] = None,
1049+
b_mask: Optional[np.ndarray] = None,
1050+
) -> np.ndarray:
10421051
"""
10431052
Perform array addition that checks for underflow and overflow.
10441053
@@ -1051,9 +1060,9 @@ def checked_add_with_arr(arr, b, arr_mask=None, b_mask=None):
10511060
----------
10521061
arr : array addend.
10531062
b : array or scalar addend.
1054-
arr_mask : boolean array or None
1063+
arr_mask : np.ndarray[bool] or None, default None
10551064
array indicating which elements to exclude from checking
1056-
b_mask : boolean array or boolean or None
1065+
b_mask : np.ndarray[bool] or None, default None
10571066
array or scalar indicating which element(s) to exclude from checking
10581067
10591068
Returns
@@ -1406,7 +1415,9 @@ def get_indexer(current_indexer, other_indexer):
14061415

14071416

14081417
def _view_wrapper(f, arr_dtype=None, out_dtype=None, fill_wrap=None):
1409-
def wrapper(arr, indexer, out, fill_value=np.nan):
1418+
def wrapper(
1419+
arr: np.ndarray, indexer: np.ndarray, out: np.ndarray, fill_value=np.nan
1420+
):
14101421
if arr_dtype is not None:
14111422
arr = arr.view(arr_dtype)
14121423
if out_dtype is not None:
@@ -1419,7 +1430,9 @@ def wrapper(arr, indexer, out, fill_value=np.nan):
14191430

14201431

14211432
def _convert_wrapper(f, conv_dtype):
1422-
def wrapper(arr, indexer, out, fill_value=np.nan):
1433+
def wrapper(
1434+
arr: np.ndarray, indexer: np.ndarray, out: np.ndarray, fill_value=np.nan
1435+
):
14231436
if conv_dtype == object:
14241437
# GH#39755 avoid casting dt64/td64 to integers
14251438
arr = ensure_wrapped_if_datetimelike(arr)
@@ -1429,7 +1442,9 @@ def wrapper(arr, indexer, out, fill_value=np.nan):
14291442
return wrapper
14301443

14311444

1432-
def _take_2d_multi_object(arr, indexer, out, fill_value, mask_info):
1445+
def _take_2d_multi_object(
1446+
arr: np.ndarray, indexer: np.ndarray, out: np.ndarray, fill_value, mask_info
1447+
) -> None:
14331448
# this is not ideal, performance-wise, but it's better than raising
14341449
# an exception (best to optimize in Cython to avoid getting here)
14351450
row_idx, col_idx = indexer
@@ -1452,7 +1467,14 @@ def _take_2d_multi_object(arr, indexer, out, fill_value, mask_info):
14521467
out[i, j] = arr[u_, v]
14531468

14541469

1455-
def _take_nd_object(arr, indexer, out, axis: int, fill_value, mask_info):
1470+
def _take_nd_object(
1471+
arr: np.ndarray,
1472+
indexer: np.ndarray,
1473+
out: np.ndarray,
1474+
axis: int,
1475+
fill_value,
1476+
mask_info,
1477+
):
14561478
if mask_info is not None:
14571479
mask, needs_masking = mask_info
14581480
else:
@@ -1570,7 +1592,7 @@ def _take_nd_object(arr, indexer, out, axis: int, fill_value, mask_info):
15701592

15711593

15721594
def _get_take_nd_function(
1573-
ndim: int, arr_dtype, out_dtype, axis: int = 0, mask_info=None
1595+
ndim: int, arr_dtype: np.dtype, out_dtype: np.dtype, axis: int = 0, mask_info=None
15741596
):
15751597
if ndim <= 2:
15761598
tup = (arr_dtype.name, out_dtype.name)
@@ -1605,7 +1627,9 @@ def func2(arr, indexer, out, fill_value=np.nan):
16051627
return func2
16061628

16071629

1608-
def take(arr, indices, axis: int = 0, allow_fill: bool = False, fill_value=None):
1630+
def take(
1631+
arr, indices: np.ndarray, axis: int = 0, allow_fill: bool = False, fill_value=None
1632+
):
16091633
"""
16101634
Take elements from an array.
16111635
@@ -1739,7 +1763,7 @@ def take_nd(
17391763
arr,
17401764
indexer,
17411765
axis: int = 0,
1742-
out=None,
1766+
out: Optional[np.ndarray] = None,
17431767
fill_value=lib.no_default,
17441768
allow_fill: bool = True,
17451769
):

0 commit comments

Comments
 (0)