Skip to content

Commit 6fb96d6

Browse files
iasoonmroeschke
authored andcommitted
TYP: resolve mypy ingores in core/indexing.py (pandas-dev#47010)
Co-authored-by: Matthew Roeschke <[email protected]>
1 parent 7ac4cf6 commit 6fb96d6

File tree

1 file changed

+18
-24
lines changed

1 file changed

+18
-24
lines changed

pandas/core/indexing.py

+18-24
Original file line numberDiff line numberDiff line change
@@ -627,7 +627,7 @@ def iat(self) -> _iAtIndexer:
627627

628628
class _LocationIndexer(NDFrameIndexerBase):
629629
_valid_types: str
630-
axis = None
630+
axis: int | None = None
631631

632632
@final
633633
def __call__(self, axis=None):
@@ -652,7 +652,7 @@ def _get_setitem_indexer(self, key):
652652
check_deprecated_indexers(x)
653653

654654
if self.axis is not None:
655-
key = self._tupleize_axis_indexer(key)
655+
key = _tupleize_axis_indexer(self.ndim, self.axis, key)
656656

657657
ax = self.obj._get_axis(0)
658658

@@ -737,17 +737,6 @@ def _maybe_mask_setitem_value(self, indexer, value):
737737

738738
return indexer, value
739739

740-
@final
741-
def _tupleize_axis_indexer(self, key) -> tuple:
742-
"""
743-
If we have an axis, adapt the given key to be axis-independent.
744-
"""
745-
new_key = [slice(None)] * self.ndim
746-
# error: Invalid index type "Optional[Any]" for "List[slice]"; expected
747-
# type "SupportsIndex"
748-
new_key[self.axis] = key # type: ignore[index]
749-
return tuple(new_key)
750-
751740
@final
752741
def _ensure_listlike_indexer(self, key, axis=None, value=None):
753742
"""
@@ -1621,7 +1610,7 @@ def _get_setitem_indexer(self, key):
16211610
key = list(key)
16221611

16231612
if self.axis is not None:
1624-
key = self._tupleize_axis_indexer(key)
1613+
key = _tupleize_axis_indexer(self.ndim, self.axis, key)
16251614

16261615
return key
16271616

@@ -2137,13 +2126,11 @@ def _ensure_iterable_column_indexer(self, column_indexer):
21372126
"""
21382127
Ensure that our column indexer is something that can be iterated over.
21392128
"""
2140-
ilocs: Sequence[int]
2129+
ilocs: Sequence[int] | np.ndarray
21412130
if is_integer(column_indexer):
21422131
ilocs = [column_indexer]
21432132
elif isinstance(column_indexer, slice):
2144-
ilocs = np.arange(len(self.obj.columns))[ # type: ignore[assignment]
2145-
column_indexer
2146-
]
2133+
ilocs = np.arange(len(self.obj.columns))[column_indexer]
21472134
elif isinstance(column_indexer, np.ndarray) and is_bool_dtype(
21482135
column_indexer.dtype
21492136
):
@@ -2201,18 +2188,16 @@ def ravel(i):
22012188
# TODO: This is hacky, align Series and DataFrame behavior GH#45778
22022189
if obj.ndim == 2 and is_empty_indexer(indexer[0]):
22032190
return ser._values.copy()
2204-
ser = ser.reindex(obj.axes[0][indexer[0]], copy=True)._values
2191+
ser_values = ser.reindex(obj.axes[0][indexer[0]], copy=True)._values
22052192

22062193
# single indexer
22072194
if len(indexer) > 1 and not multiindex_indexer:
22082195
len_indexer = len(indexer[1])
2209-
ser = (
2210-
np.tile(ser, len_indexer) # type: ignore[assignment]
2211-
.reshape(len_indexer, -1)
2212-
.T
2196+
ser_values = (
2197+
np.tile(ser_values, len_indexer).reshape(len_indexer, -1).T
22132198
)
22142199

2215-
return ser
2200+
return ser_values
22162201

22172202
for i, idx in enumerate(indexer):
22182203
ax = obj.axes[i]
@@ -2428,6 +2413,15 @@ def _tuplify(ndim: int, loc: Hashable) -> tuple[Hashable | slice, ...]:
24282413
return tuple(_tup)
24292414

24302415

2416+
def _tupleize_axis_indexer(ndim: int, axis: int, key) -> tuple:
2417+
"""
2418+
If we have an axis, adapt the given key to be axis-independent.
2419+
"""
2420+
new_key = [slice(None)] * ndim
2421+
new_key[axis] = key
2422+
return tuple(new_key)
2423+
2424+
24312425
def convert_to_index_sliceable(obj: DataFrame, key):
24322426
"""
24332427
If we are index sliceable, then return my slicer, otherwise return None.

0 commit comments

Comments
 (0)