Skip to content

Commit f1958e0

Browse files
committed
Fix type checks
1 parent 6205f45 commit f1958e0

File tree

1 file changed

+10
-8
lines changed

1 file changed

+10
-8
lines changed

pandas/io/excel/_base.py

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -827,10 +827,10 @@ def _parse_sheet(
827827
elif is_integer(skiprows):
828828
ixmap = range(skiprows, len(data))
829829
elif is_list_like(skiprows):
830-
skiprows = set(skiprows)
831-
ixmap = [ix for ix, _ in enumerate(data) if ix not in skiprows]
830+
skiprows_set = set(skiprows)
831+
ixmap = list(ix for ix, _ in enumerate(data) if ix not in skiprows_set)
832832
elif callable(skiprows):
833-
ixmap = [ix for ix, _ in enumerate(data) if not skiprows(ix)]
833+
ixmap = list(ix for ix, _ in enumerate(data) if not skiprows(ix))
834834
else:
835835
raise ValueError(
836836
"skiprows must be an integer or a list of integers"
@@ -844,23 +844,24 @@ def _parse_sheet(
844844
elif isinstance(index_col, str):
845845
index_col_set = set()
846846
index_col_has_names = True
847-
elif is_integer(index_col):
847+
elif isinstance(index_col, int):
848848
index_col_set = {index_col}
849849
elif is_list_like(index_col):
850-
index_col_set = set(index_col)
850+
index_col_set = set(cast(Sequence[int], index_col))
851851
else:
852852
raise ValueError(
853853
"index_col must be a string, an integer or a list of integers"
854854
)
855855
has_index = len(index_col_set) > 0
856856
has_index_names = False
857857

858+
header_list: list[int]
858859
if header is None:
859860
header_list = []
860861
elif is_integer(header):
861862
header_list = [header]
862863
elif is_list_like(header):
863-
header_list = header
864+
header_list = cast(Sequence[int], header)
864865
else:
865866
raise ValueError(
866867
"header must be an integer or a list of integers"
@@ -889,15 +890,16 @@ def _parse_sheet(
889890

890891
# Forward fill and pull out names for MultiIndex column
891892
control_row = [True] * len(data[0])
892-
for row in header:
893+
for row in header_list:
893894
row1 = ixmap[row]
894895
data[row1], control_row = fill_mi_header(data[row1],
895896
control_row)
896897

897898
if has_index:
898899
header_name, _ = pop_header_name(data[row1],
899900
index_col)
900-
header_names.append(header_name)
901+
if header_name:
902+
header_names.append(header_name)
901903

902904
# If there is a MultiIndex header and an index then
903905
# there may also be a row containing just the index

0 commit comments

Comments
 (0)