File tree 5 files changed +9
-5
lines changed 5 files changed +9
-5
lines changed Original file line number Diff line number Diff line change @@ -518,14 +518,18 @@ def __getitem__(self, key):
518
518
return type (self )(val , dtype = self .dtype )
519
519
520
520
if com .is_bool_indexer (key ):
521
- # first check for boolean, because check_array_indexer doesn't
521
+ # first convert to boolean, because check_array_indexer doesn't
522
522
# allow object dtype
523
523
key = np .asarray (key , dtype = bool )
524
524
key = check_array_indexer (self , key )
525
525
if key .all ():
526
526
key = slice (0 , None , None )
527
527
else :
528
528
key = lib .maybe_booleans_to_slice (key .view (np .uint8 ))
529
+ elif isinstance (key , list ) and len (key ) == 1 and isinstance (key [0 ], slice ):
530
+ # see https://github.com/pandas-dev/pandas/issues/31299, need to allow
531
+ # this for now (would otherwise raise in check_array_indexer)
532
+ pass
529
533
elif is_list_like (key ) and not isinstance (key , tuple ):
530
534
key = check_array_indexer (self , key )
531
535
Original file line number Diff line number Diff line change @@ -496,7 +496,7 @@ def __len__(self) -> int:
496
496
return len (self .left )
497
497
498
498
def __getitem__ (self , value ):
499
- if is_list_like (value ):
499
+ if is_list_like (value ) and not isinstance ( value , tuple ) :
500
500
value = check_array_indexer (self , value )
501
501
left = self .left [value ]
502
502
right = self .right [value ]
Original file line number Diff line number Diff line change @@ -39,7 +39,7 @@ def __getitem__(self, item):
39
39
return self .dtype .na_value
40
40
return self ._data [item ]
41
41
42
- elif is_list_like (item ):
42
+ elif is_list_like (item ) and not isinstance ( item , tuple ) :
43
43
item = check_array_indexer (self , item )
44
44
45
45
return type (self )(self ._data [item ], self ._mask [item ])
Original file line number Diff line number Diff line change @@ -234,7 +234,7 @@ def __getitem__(self, item):
234
234
if isinstance (item , type (self )):
235
235
item = item ._ndarray
236
236
237
- elif is_list_like (item ):
237
+ elif is_list_like (item ) and not isinstance ( item , tuple ) :
238
238
item = check_array_indexer (self , item )
239
239
240
240
result = self ._ndarray [item ]
Original file line number Diff line number Diff line change @@ -770,7 +770,7 @@ def __getitem__(self, key):
770
770
else :
771
771
key = np .asarray (key )
772
772
773
- if is_list_like (key ):
773
+ if is_list_like (key ) and not isinstance ( key , tuple ) :
774
774
key = check_array_indexer (self , key )
775
775
776
776
if com .is_bool_indexer (key ):
You can’t perform that action at this time.
0 commit comments