(self, src: ReadCsvBuffer[str], **kwds)
| 63 | _reader: parsers.TextReader |
| 64 | |
| 65 | def __init__(self, src: ReadCsvBuffer[str], **kwds) -> None: |
| 66 | super().__init__(kwds) |
| 67 | self.kwds = kwds |
| 68 | kwds = kwds.copy() |
| 69 | |
| 70 | self.low_memory = kwds.pop("low_memory", False) |
| 71 | |
| 72 | # #2442 |
| 73 | kwds["allow_leading_cols"] = self.index_col is not False |
| 74 | |
| 75 | # GH20529, validate usecol arg before TextReader |
| 76 | kwds["usecols"] = self.usecols |
| 77 | |
| 78 | # Have to pass int, would break tests using TextReader directly otherwise :( |
| 79 | kwds["on_bad_lines"] = self.on_bad_lines.value |
| 80 | |
| 81 | for key in ( |
| 82 | "storage_options", |
| 83 | "encoding", |
| 84 | "memory_map", |
| 85 | "compression", |
| 86 | ): |
| 87 | kwds.pop(key, None) |
| 88 | |
| 89 | kwds["dtype"] = ensure_dtype_objs(kwds.get("dtype", None)) |
| 90 | if "dtype_backend" not in kwds or kwds["dtype_backend"] is lib.no_default: |
| 91 | kwds["dtype_backend"] = "numpy" |
| 92 | if kwds["dtype_backend"] == "pyarrow": |
| 93 | # Fail here loudly instead of in cython after reading |
| 94 | import_optional_dependency("pyarrow") |
| 95 | self._reader = parsers.TextReader(src, **kwds) |
| 96 | |
| 97 | self.unnamed_cols = self._reader.unnamed_cols |
| 98 | |
| 99 | passed_names = self.names is None |
| 100 | |
| 101 | if self._reader.header is None: |
| 102 | self.names = None |
| 103 | else: |
| 104 | ( |
| 105 | self.names, |
| 106 | self.index_names, |
| 107 | self.col_names, |
| 108 | passed_names, |
| 109 | ) = self._extract_multi_indexer_columns( |
| 110 | self._reader.header, |
| 111 | self.index_names, |
| 112 | passed_names, |
| 113 | ) |
| 114 | |
| 115 | if self.names is None: |
| 116 | self.names = list(range(self._reader.table_width)) |
| 117 | |
| 118 | # gh-9755 |
| 119 | # |
| 120 | # need to set orig_names here first |
| 121 | # so that proper indexing can be done |
| 122 | # with _set_noconvert_columns |
nothing calls this directly
no test coverage detected