Skip to content

Commit a8153a8

Browse files
authored
TYP: base_parser and readers (#47359)
1 parent ff36ff4 commit a8153a8

File tree

4 files changed

+30
-19
lines changed

4 files changed

+30
-19
lines changed

pandas/io/common.py

+15
Original file line numberDiff line numberDiff line change
@@ -626,6 +626,21 @@ def get_handle(
626626
...
627627

628628

629+
@overload
630+
def get_handle(
631+
path_or_buf: FilePath | BaseBuffer,
632+
mode: str,
633+
*,
634+
encoding: str | None = ...,
635+
compression: CompressionOptions = ...,
636+
memory_map: bool = ...,
637+
is_text: bool = ...,
638+
errors: str | None = ...,
639+
storage_options: StorageOptions = ...,
640+
) -> IOHandles[str] | IOHandles[bytes]:
641+
...
642+
643+
629644
@doc(compression_options=_shared_docs["compression_options"] % "path_or_buf")
630645
def get_handle(
631646
path_or_buf: FilePath | BaseBuffer,

pandas/io/parsers/base_parser.py

+3-2
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@
3232
from pandas._typing import (
3333
ArrayLike,
3434
DtypeArg,
35+
Scalar,
3536
)
3637
from pandas.errors import (
3738
ParserError,
@@ -89,7 +90,7 @@ def __init__(self, kwds) -> None:
8990

9091
self.index_col = kwds.get("index_col", None)
9192
self.unnamed_cols: set = set()
92-
self.index_names: list | None = None
93+
self.index_names: Sequence[Hashable] | None = None
9394
self.col_names = None
9495

9596
self.parse_dates = _validate_parse_dates_arg(kwds.pop("parse_dates", False))
@@ -365,7 +366,7 @@ def _maybe_make_multi_index_columns(
365366

366367
@final
367368
def _make_index(
368-
self, data, alldata, columns, indexnamerow=False
369+
self, data, alldata, columns, indexnamerow: list[Scalar] | None = None
369370
) -> tuple[Index | None, Sequence[Hashable] | MultiIndex]:
370371
index: Index | None
371372
if not is_index_col(self.index_col) or not self.index_col:

pandas/io/parsers/readers.py

+12-15
Original file line numberDiff line numberDiff line change
@@ -636,7 +636,7 @@ def read_csv(
636636
comment: str | None = ...,
637637
encoding: str | None = ...,
638638
encoding_errors: str | None = ...,
639-
dialect=...,
639+
dialect: str | csv.Dialect | None = ...,
640640
error_bad_lines: bool | None = ...,
641641
warn_bad_lines: bool | None = ...,
642642
on_bad_lines=...,
@@ -696,7 +696,7 @@ def read_csv(
696696
comment: str | None = ...,
697697
encoding: str | None = ...,
698698
encoding_errors: str | None = ...,
699-
dialect=...,
699+
dialect: str | csv.Dialect | None = ...,
700700
error_bad_lines: bool | None = ...,
701701
warn_bad_lines: bool | None = ...,
702702
on_bad_lines=...,
@@ -756,7 +756,7 @@ def read_csv(
756756
comment: str | None = ...,
757757
encoding: str | None = ...,
758758
encoding_errors: str | None = ...,
759-
dialect=...,
759+
dialect: str | csv.Dialect | None = ...,
760760
error_bad_lines: bool | None = ...,
761761
warn_bad_lines: bool | None = ...,
762762
on_bad_lines=...,
@@ -816,7 +816,7 @@ def read_csv(
816816
comment: str | None = ...,
817817
encoding: str | None = ...,
818818
encoding_errors: str | None = ...,
819-
dialect=...,
819+
dialect: str | csv.Dialect | None = ...,
820820
error_bad_lines: bool | None = ...,
821821
warn_bad_lines: bool | None = ...,
822822
on_bad_lines=...,
@@ -891,7 +891,7 @@ def read_csv(
891891
comment: str | None = None,
892892
encoding: str | None = None,
893893
encoding_errors: str | None = "strict",
894-
dialect=None,
894+
dialect: str | csv.Dialect | None = None,
895895
# Error Handling
896896
error_bad_lines: bool | None = None,
897897
warn_bad_lines: bool | None = None,
@@ -975,7 +975,7 @@ def read_table(
975975
comment: str | None = ...,
976976
encoding: str | None = ...,
977977
encoding_errors: str | None = ...,
978-
dialect=...,
978+
dialect: str | csv.Dialect | None = ...,
979979
error_bad_lines: bool | None = ...,
980980
warn_bad_lines: bool | None = ...,
981981
on_bad_lines=...,
@@ -1035,7 +1035,7 @@ def read_table(
10351035
comment: str | None = ...,
10361036
encoding: str | None = ...,
10371037
encoding_errors: str | None = ...,
1038-
dialect=...,
1038+
dialect: str | csv.Dialect | None = ...,
10391039
error_bad_lines: bool | None = ...,
10401040
warn_bad_lines: bool | None = ...,
10411041
on_bad_lines=...,
@@ -1095,7 +1095,7 @@ def read_table(
10951095
comment: str | None = ...,
10961096
encoding: str | None = ...,
10971097
encoding_errors: str | None = ...,
1098-
dialect=...,
1098+
dialect: str | csv.Dialect | None = ...,
10991099
error_bad_lines: bool | None = ...,
11001100
warn_bad_lines: bool | None = ...,
11011101
on_bad_lines=...,
@@ -1155,7 +1155,7 @@ def read_table(
11551155
comment: str | None = ...,
11561156
encoding: str | None = ...,
11571157
encoding_errors: str | None = ...,
1158-
dialect=...,
1158+
dialect: str | csv.Dialect | None = ...,
11591159
error_bad_lines: bool | None = ...,
11601160
warn_bad_lines: bool | None = ...,
11611161
on_bad_lines=...,
@@ -1230,7 +1230,7 @@ def read_table(
12301230
comment: str | None = None,
12311231
encoding: str | None = None,
12321232
encoding_errors: str | None = "strict",
1233-
dialect=None,
1233+
dialect: str | csv.Dialect | None = None,
12341234
# Error Handling
12351235
error_bad_lines: bool | None = None,
12361236
warn_bad_lines: bool | None = None,
@@ -1702,10 +1702,7 @@ def _make_engine(
17021702
if engine == "pyarrow":
17031703
is_text = False
17041704
mode = "rb"
1705-
# error: No overload variant of "get_handle" matches argument types
1706-
# "Union[str, PathLike[str], ReadCsvBuffer[bytes], ReadCsvBuffer[str]]"
1707-
# , "str", "bool", "Any", "Any", "Any", "Any", "Any"
1708-
self.handles = get_handle( # type: ignore[call-overload]
1705+
self.handles = get_handle(
17091706
f,
17101707
mode,
17111708
encoding=self.options.get("encoding", None),
@@ -1925,7 +1922,7 @@ def _stringify_na_values(na_values):
19251922

19261923

19271924
def _refine_defaults_read(
1928-
dialect: str | csv.Dialect,
1925+
dialect: str | csv.Dialect | None,
19291926
delimiter: str | None | lib.NoDefault,
19301927
delim_whitespace: bool,
19311928
engine: CSVEngine | None,

pyright_reportGeneralTypeIssues.json

-2
Original file line numberDiff line numberDiff line change
@@ -104,8 +104,6 @@
104104
"pandas/io/parsers/arrow_parser_wrapper.py",
105105
"pandas/io/parsers/base_parser.py",
106106
"pandas/io/parsers/c_parser_wrapper.py",
107-
"pandas/io/parsers/python_parser.py",
108-
"pandas/io/parsers/readers.py",
109107
"pandas/io/pytables.py",
110108
"pandas/io/sas/sas7bdat.py",
111109
"pandas/io/sas/sasreader.py",

0 commit comments

Comments
 (0)