From f50d82b9a0c8f52fb3356160370616965913cc5e Mon Sep 17 00:00:00 2001 From: phofl Date: Tue, 12 Jan 2021 23:17:16 +0100 Subject: [PATCH 1/2] ASV: Add xlrd engine for xls file --- asv_bench/benchmarks/io/excel.py | 11 +++++++++-- pandas/io/parsers.py | 5 +++++ 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/asv_bench/benchmarks/io/excel.py b/asv_bench/benchmarks/io/excel.py index 96f02d37db1e1..7efaeddecd423 100644 --- a/asv_bench/benchmarks/io/excel.py +++ b/asv_bench/benchmarks/io/excel.py @@ -40,9 +40,10 @@ def time_write_excel(self, engine): class ReadExcel: - params = ["openpyxl", "odf"] + params = ["xlrd", "openpyxl", "odf"] param_names = ["engine"] fname_excel = "spreadsheet.xlsx" + fname_excel_xls = "spreadsheet.xls" fname_odf = "spreadsheet.ods" def _create_odf(self): @@ -63,10 +64,16 @@ def setup_cache(self): self.df = _generate_dataframe() self.df.to_excel(self.fname_excel, sheet_name="Sheet1") + self.df.to_excel(self.fname_excel_xls, sheet_name="Sheet1") self._create_odf() def time_read_excel(self, engine): - fname = self.fname_odf if engine == "odf" else self.fname_excel + if engine == "xlrd": + fname = self.fname_excel_xls + elif engine == "odf": + fname = self.fname_odf + else: + fname = self.fname_excel read_excel(fname, engine=engine) diff --git a/pandas/io/parsers.py b/pandas/io/parsers.py index ca817be5d2ff6..bd245dde50315 100644 --- a/pandas/io/parsers.py +++ b/pandas/io/parsers.py @@ -2457,12 +2457,17 @@ class MyDialect(csv.Dialect): def _read(): line = f.readline() pat = re.compile(sep) + # if isinstance(line, bytes): + # line = line.decode() yield pat.split(line.strip()) for line in f: yield pat.split(line.strip()) + # if isinstance(sep, bytes): + # sep = sep.decode() + reader = _read() # pandas\io\parsers.py:2427: error: Incompatible types in assignment From 09c10971f594170b7ef528236cb89c7a7083d43f Mon Sep 17 00:00:00 2001 From: phofl Date: Tue, 12 Jan 2021 23:47:11 +0100 Subject: [PATCH 2/2] Remove wrong code --- pandas/io/parsers.py | 5 ----- 1 file changed, 5 deletions(-) diff --git a/pandas/io/parsers.py b/pandas/io/parsers.py index bd245dde50315..ca817be5d2ff6 100644 --- a/pandas/io/parsers.py +++ b/pandas/io/parsers.py @@ -2457,17 +2457,12 @@ class MyDialect(csv.Dialect): def _read(): line = f.readline() pat = re.compile(sep) - # if isinstance(line, bytes): - # line = line.decode() yield pat.split(line.strip()) for line in f: yield pat.split(line.strip()) - # if isinstance(sep, bytes): - # sep = sep.decode() - reader = _read() # pandas\io\parsers.py:2427: error: Incompatible types in assignment