diff --git a/pandas/core/arrays/_mixins.py b/pandas/core/arrays/_mixins.py index 95a003efbe1d0..948ffdc1f7c01 100644 --- a/pandas/core/arrays/_mixins.py +++ b/pandas/core/arrays/_mixins.py @@ -180,13 +180,10 @@ def _validate_shift_value(self, fill_value): return self._validate_fill_value(fill_value) def __setitem__(self, key, value): - key = self._validate_setitem_key(key) + key = check_array_indexer(self, key) value = self._validate_setitem_value(value) self._ndarray[key] = value - def _validate_setitem_key(self, key): - return check_array_indexer(self, key) - def _validate_setitem_value(self, value): return value @@ -198,7 +195,8 @@ def __getitem__(self, key): return self._box_func(result) return self._from_backing_data(result) - key = self._validate_getitem_key(key) + key = extract_array(key, extract_numpy=True) + key = check_array_indexer(self, key) result = self._ndarray[key] if lib.is_scalar(result): return self._box_func(result) @@ -206,10 +204,6 @@ def __getitem__(self, key): result = self._from_backing_data(result) return result - def _validate_getitem_key(self, key): - key = extract_array(key, extract_numpy=True) - return check_array_indexer(self, key) - @doc(ExtensionArray.fillna) def fillna(self: _T, value=None, method=None, limit=None) -> _T: value, method = validate_fillna_kwargs(value, method) diff --git a/pandas/core/arrays/datetimelike.py b/pandas/core/arrays/datetimelike.py index eb5e5b03fe243..f1455aa864197 100644 --- a/pandas/core/arrays/datetimelike.py +++ b/pandas/core/arrays/datetimelike.py @@ -65,7 +65,7 @@ from pandas.core.arrays._mixins import NDArrayBackedExtensionArray import pandas.core.common as com from pandas.core.construction import array, extract_array -from pandas.core.indexers import check_setitem_lengths +from pandas.core.indexers import check_array_indexer, check_setitem_lengths from pandas.core.ops.common import unpack_zerodim_and_defer from pandas.core.ops.invalid import invalid_comparison, make_invalid_op @@ -294,7 +294,7 @@ def _get_getitem_freq(self, key): elif self.ndim != 1: freq = None else: - key = self._validate_getitem_key(key) # maybe ndarray[bool] -> slice + key = check_array_indexer(self, key) # maybe ndarray[bool] -> slice freq = None if isinstance(key, slice): if self.freq is not None and key.step is not None: