@@ -223,7 +223,7 @@ def _validate_key(self, key, axis: int):
223
223
"""
224
224
raise AbstractMethodError (self )
225
225
226
- def _has_valid_tuple (self , key ):
226
+ def _has_valid_tuple (self , key : Tuple ):
227
227
""" check the key for valid keys across my indexer """
228
228
for i , k in enumerate (key ):
229
229
if i >= self .obj .ndim :
@@ -236,7 +236,7 @@ def _has_valid_tuple(self, key):
236
236
"[{types}] types" .format (types = self ._valid_types )
237
237
)
238
238
239
- def _is_nested_tuple_indexer (self , tup ):
239
+ def _is_nested_tuple_indexer (self , tup : Tuple ):
240
240
if any (isinstance (ax , MultiIndex ) for ax in self .obj .axes ):
241
241
return any (is_nested_tuple (tup , ax ) for ax in self .obj .axes )
242
242
return False
@@ -260,7 +260,7 @@ def _convert_tuple(self, key, is_setter: bool = False):
260
260
keyidx .append (idx )
261
261
return tuple (keyidx )
262
262
263
- def _convert_range (self , key , is_setter : bool = False ):
263
+ def _convert_range (self , key : range , is_setter : bool = False ):
264
264
""" convert a range argument """
265
265
return list (key )
266
266
@@ -270,7 +270,7 @@ def _convert_scalar_indexer(self, key, axis: int):
270
270
# a scalar
271
271
return ax ._convert_scalar_indexer (key , kind = self .name )
272
272
273
- def _convert_slice_indexer (self , key , axis : int ):
273
+ def _convert_slice_indexer (self , key : slice , axis : int ):
274
274
# if we are accessing via lowered dim, use the last dim
275
275
ax = self .obj ._get_axis (min (axis , self .ndim - 1 ))
276
276
return ax ._convert_slice_indexer (key , kind = self .name )
@@ -484,7 +484,7 @@ def setter(item, v):
484
484
if is_list_like_indexer (value ) and getattr (value , "ndim" , 1 ) > 0 :
485
485
486
486
# we have an equal len Frame
487
- if isinstance (value , ABCDataFrame ) and value . ndim > 1 :
487
+ if isinstance (value , ABCDataFrame ):
488
488
sub_indexer = list (indexer )
489
489
multiindex_indexer = isinstance (labels , MultiIndex )
490
490
@@ -638,27 +638,23 @@ def _setitem_with_indexer_missing(self, indexer, value):
638
638
self .obj ._maybe_update_cacher (clear = True )
639
639
return self .obj
640
640
641
- def _align_series (self , indexer , ser , multiindex_indexer = False ):
641
+ def _align_series (self , indexer , ser : ABCSeries , multiindex_indexer : bool = False ):
642
642
"""
643
643
Parameters
644
644
----------
645
645
indexer : tuple, slice, scalar
646
646
The indexer used to get the locations that will be set to
647
647
`ser`
648
-
649
648
ser : pd.Series
650
649
The values to assign to the locations specified by `indexer`
651
-
652
650
multiindex_indexer : boolean, optional
653
651
Defaults to False. Should be set to True if `indexer` was from
654
652
a `pd.MultiIndex`, to avoid unnecessary broadcasting.
655
653
656
-
657
654
Returns
658
655
-------
659
656
`np.array` of `ser` broadcast to the appropriate shape for assignment
660
657
to the locations selected by `indexer`
661
-
662
658
"""
663
659
if isinstance (indexer , (slice , np .ndarray , list , Index )):
664
660
indexer = tuple ([indexer ])
@@ -734,7 +730,7 @@ def ravel(i):
734
730
735
731
raise ValueError ("Incompatible indexer with Series" )
736
732
737
- def _align_frame (self , indexer , df ):
733
+ def _align_frame (self , indexer , df : ABCDataFrame ):
738
734
is_frame = self .obj .ndim == 2
739
735
740
736
if isinstance (indexer , tuple ):
@@ -786,7 +782,7 @@ def _align_frame(self, indexer, df):
786
782
787
783
raise ValueError ("Incompatible indexer with DataFrame" )
788
784
789
- def _getitem_tuple (self , tup ):
785
+ def _getitem_tuple (self , tup : Tuple ):
790
786
try :
791
787
return self ._getitem_lowerdim (tup )
792
788
except IndexingError :
@@ -809,7 +805,7 @@ def _getitem_tuple(self, tup):
809
805
810
806
return retval
811
807
812
- def _multi_take_opportunity (self , tup ):
808
+ def _multi_take_opportunity (self , tup : Tuple ):
813
809
"""
814
810
Check whether there is the possibility to use ``_multi_take``.
815
811
Currently the limit is that all axes being indexed must be indexed with
@@ -833,7 +829,7 @@ def _multi_take_opportunity(self, tup):
833
829
834
830
return True
835
831
836
- def _multi_take (self , tup ):
832
+ def _multi_take (self , tup : Tuple ):
837
833
"""
838
834
Create the indexers for the passed tuple of keys, and execute the take
839
835
operation. This allows the take operation to be executed all at once -
@@ -859,7 +855,7 @@ def _multi_take(self, tup):
859
855
def _convert_for_reindex (self , key , axis : int ):
860
856
return key
861
857
862
- def _handle_lowerdim_multi_index_axis0 (self , tup ):
858
+ def _handle_lowerdim_multi_index_axis0 (self , tup : Tuple ):
863
859
# we have an axis0 multi-index, handle or raise
864
860
axis = self .axis or 0
865
861
try :
@@ -884,7 +880,7 @@ def _handle_lowerdim_multi_index_axis0(self, tup):
884
880
885
881
return None
886
882
887
- def _getitem_lowerdim (self , tup ):
883
+ def _getitem_lowerdim (self , tup : Tuple ):
888
884
889
885
# we can directly get the axis result since the axis is specified
890
886
if self .axis is not None :
@@ -948,7 +944,7 @@ def _getitem_lowerdim(self, tup):
948
944
949
945
raise IndexingError ("not applicable" )
950
946
951
- def _getitem_nested_tuple (self , tup ):
947
+ def _getitem_nested_tuple (self , tup : Tuple ):
952
948
# we have a nested tuple so have at least 1 multi-index level
953
949
# we should be able to match up the dimensionality here
954
950
@@ -1422,7 +1418,7 @@ def _getbool_axis(self, key, axis: int):
1422
1418
# caller is responsible for ensuring non-None axis
1423
1419
labels = self .obj ._get_axis (axis )
1424
1420
key = check_bool_indexer (labels , key )
1425
- inds , = key .nonzero ()
1421
+ inds = key .nonzero ()[ 0 ]
1426
1422
try :
1427
1423
return self .obj .take (inds , axis = axis )
1428
1424
except Exception as detail :
@@ -2037,7 +2033,7 @@ def _getitem_scalar(self, key):
2037
2033
values = self .obj ._get_value (* key , takeable = True )
2038
2034
return values
2039
2035
2040
- def _validate_integer (self , key , axis ):
2036
+ def _validate_integer (self , key : int , axis : int ):
2041
2037
"""
2042
2038
Check that 'key' is a valid position in the desired axis.
2043
2039
@@ -2062,7 +2058,7 @@ def _validate_integer(self, key, axis):
2062
2058
if key >= len_axis or key < - len_axis :
2063
2059
raise IndexError ("single positional indexer is out-of-bounds" )
2064
2060
2065
- def _getitem_tuple (self , tup ):
2061
+ def _getitem_tuple (self , tup : Tuple ):
2066
2062
2067
2063
self ._has_valid_tuple (tup )
2068
2064
try :
@@ -2160,7 +2156,7 @@ class _ScalarAccessIndexer(_NDFrameIndexer):
2160
2156
""" access scalars quickly """
2161
2157
2162
2158
def _convert_key (self , key , is_setter : bool = False ):
2163
- return list ( key )
2159
+ raise AbstractMethodError ( self )
2164
2160
2165
2161
def __getitem__ (self , key ):
2166
2162
if not isinstance (key , tuple ):
0 commit comments