File tree 4 files changed +13
-25
lines changed
4 files changed +13
-25
lines changed Original file line number Diff line number Diff line change 9
9
from pandas .core .algorithms import take , unique
10
10
from pandas .core .array_algos .transforms import shift
11
11
from pandas .core .arrays .base import ExtensionArray
12
+ from pandas .core .indexers import check_array_indexer
12
13
13
14
_T = TypeVar ("_T" , bound = "NDArrayBackedExtensionArray" )
14
15
@@ -156,3 +157,14 @@ def _validate_shift_value(self, fill_value):
156
157
# TODO: after deprecation in datetimelikearraymixin is enforced,
157
158
# we can remove this and ust validate_fill_value directly
158
159
return self ._validate_fill_value (fill_value )
160
+
161
+ def __setitem__ (self , key , value ):
162
+ key = self ._validate_setitem_key (key )
163
+ value = self ._validate_setitem_value (value )
164
+ self ._ndarray [key ] = value
165
+
166
+ def _validate_setitem_key (self , key ):
167
+ return check_array_indexer (self , key )
168
+
169
+ def _validate_setitem_value (self , value ):
170
+ return value
Original file line number Diff line number Diff line change @@ -1894,20 +1894,6 @@ def __getitem__(self, key):
1894
1894
return result
1895
1895
return self ._from_backing_data (result )
1896
1896
1897
- def __setitem__ (self , key , value ):
1898
- """
1899
- Item assignment.
1900
-
1901
- Raises
1902
- ------
1903
- ValueError
1904
- If (one or more) Value is not in categories or if a assigned
1905
- `Categorical` does not have the same categories
1906
- """
1907
- key = self ._validate_setitem_key (key )
1908
- value = self ._validate_setitem_value (value )
1909
- self ._ndarray [key ] = value
1910
-
1911
1897
def _validate_setitem_value (self , value ):
1912
1898
value = extract_array (value , extract_numpy = True )
1913
1899
Original file line number Diff line number Diff line change @@ -609,9 +609,7 @@ def __setitem__(
609
609
if no_op :
610
610
return
611
611
612
- value = self ._validate_setitem_value (value )
613
- key = check_array_indexer (self , key )
614
- self ._ndarray [key ] = value
612
+ super ().__setitem__ (key , value )
615
613
self ._maybe_clear_freq ()
616
614
617
615
def _maybe_clear_freq (self ):
Original file line number Diff line number Diff line change @@ -259,21 +259,13 @@ def __getitem__(self, item):
259
259
result = type (self )(result )
260
260
return result
261
261
262
- def __setitem__ (self , key , value ) -> None :
263
- key = self ._validate_setitem_key (key )
264
- value = self ._validate_setitem_value (value )
265
- self ._ndarray [key ] = value
266
-
267
262
def _validate_setitem_value (self , value ):
268
263
value = extract_array (value , extract_numpy = True )
269
264
270
265
if not lib .is_scalar (value ):
271
266
value = np .asarray (value , dtype = self ._ndarray .dtype )
272
267
return value
273
268
274
- def _validate_setitem_key (self , key ):
275
- return check_array_indexer (self , key )
276
-
277
269
def isna (self ) -> np .ndarray :
278
270
return isna (self ._ndarray )
279
271
You can’t perform that action at this time.
0 commit comments