diff --git a/pandas/core/indexes/base.py b/pandas/core/indexes/base.py index 6bc15a5f89e2a..ff026583c5adb 100644 --- a/pandas/core/indexes/base.py +++ b/pandas/core/indexes/base.py @@ -3152,7 +3152,7 @@ def _validate_positional_slice(self, key: slice): self._validate_indexer("positional", key.stop, "iloc") self._validate_indexer("positional", key.step, "iloc") - def _convert_slice_indexer(self, key: slice, kind=None): + def _convert_slice_indexer(self, key: slice, kind: str_t): """ Convert a slice indexer. @@ -3162,9 +3162,9 @@ def _convert_slice_indexer(self, key: slice, kind=None): Parameters ---------- key : label of the slice bound - kind : {'loc', 'getitem'} or None + kind : {'loc', 'getitem'} """ - assert kind in ["loc", "getitem", None], kind + assert kind in ["loc", "getitem"], kind # potentially cast the bounds to integers start, stop, step = key.start, key.stop, key.step diff --git a/pandas/core/indexes/interval.py b/pandas/core/indexes/interval.py index 03fb8db2e1e1e..331c12b3bdab5 100644 --- a/pandas/core/indexes/interval.py +++ b/pandas/core/indexes/interval.py @@ -885,7 +885,7 @@ def get_indexer_for(self, target: AnyArrayLike, **kwargs) -> np.ndarray: return self.get_indexer_non_unique(target)[0] return self.get_indexer(target, **kwargs) - def _convert_slice_indexer(self, key: slice, kind=None): + def _convert_slice_indexer(self, key: slice, kind: str): if not (key.step is None or key.step == 1): raise ValueError("cannot support not-default step in a slice") return super()._convert_slice_indexer(key, kind) diff --git a/pandas/core/indexes/numeric.py b/pandas/core/indexes/numeric.py index f09713409c6cf..877b3d1d2ba30 100644 --- a/pandas/core/indexes/numeric.py +++ b/pandas/core/indexes/numeric.py @@ -393,8 +393,8 @@ def _convert_scalar_indexer(self, key, kind: str): return key @Appender(Index._convert_slice_indexer.__doc__) - def _convert_slice_indexer(self, key: slice, kind=None): - assert kind in ["loc", "getitem", None] + def _convert_slice_indexer(self, key: slice, kind: str): + assert kind in ["loc", "getitem"] # We always treat __getitem__ slicing as label-based # translate to locations diff --git a/pandas/core/indexing.py b/pandas/core/indexing.py index 70092c70a76ad..8cd085ff54b22 100755 --- a/pandas/core/indexing.py +++ b/pandas/core/indexing.py @@ -843,9 +843,6 @@ def _setitem_with_indexer(self, indexer, value): value = getattr(value, "values", value).ravel() # we can directly set the series here - # as we select a slice indexer on the mi - if isinstance(idx, slice): - idx = index._convert_slice_indexer(idx) obj._consolidate_inplace() obj = obj.copy() obj._data = obj._data.setitem(indexer=tuple([idx]), value=value)