@@ -823,11 +823,11 @@ def _parse_sheet(
823
823
# create an index map from the without-skiprows to the
824
824
# original indexes.
825
825
if skiprows is None :
826
- ixmap = range (len (data ))
826
+ ixmap = list ( range (len (data ) ))
827
827
elif is_integer (skiprows ):
828
- ixmap = range (skiprows , len (data ))
828
+ ixmap = list ( range (skiprows , len (data ) ))
829
829
elif is_list_like (skiprows ):
830
- skiprows_set = set (skiprows )
830
+ skiprows_set = set (cast ( Sequence [ int ], skiprows ) )
831
831
ixmap = list (ix for ix , _ in enumerate (data ) if ix not in skiprows_set )
832
832
elif callable (skiprows ):
833
833
ixmap = list (ix for ix , _ in enumerate (data ) if not skiprows (ix ))
@@ -847,21 +847,21 @@ def _parse_sheet(
847
847
elif isinstance (index_col , int ):
848
848
index_col_set = {index_col }
849
849
elif is_list_like (index_col ):
850
- index_col_set = set (cast ( Sequence [ int ], index_col ) )
850
+ index_col_set = set (index_col )
851
851
else :
852
852
raise ValueError (
853
853
"index_col must be a string, an integer or a list of integers"
854
854
)
855
855
has_index = len (index_col_set ) > 0
856
856
has_index_names = False
857
857
858
- header_list : list [int ]
858
+ header_list : Sequence [int ]
859
859
if header is None :
860
860
header_list = []
861
- elif is_integer (header ):
861
+ elif isinstance (header , int ):
862
862
header_list = [header ]
863
863
elif is_list_like (header ):
864
- header_list = cast ( Sequence [ int ], header )
864
+ header_list = header
865
865
else :
866
866
raise ValueError (
867
867
"header must be an integer or a list of integers"
@@ -897,7 +897,7 @@ def _parse_sheet(
897
897
898
898
if has_index :
899
899
header_name , _ = pop_header_name (data [row1 ],
900
- index_col )
900
+ sorted ( index_col_set ) )
901
901
if header_name :
902
902
header_names .append (header_name )
903
903
0 commit comments