Skip to content

Commit c395ec6

Browse files
tdamsmaPingviinituutti
authored andcommitted
[CLN] Excel Module Cleanups (pandas-dev#25275)
Closes pandas-devgh-25153 Authored-By: tdamsma <[email protected]>
1 parent e7bf639 commit c395ec6

File tree

3 files changed

+26
-25
lines changed

3 files changed

+26
-25
lines changed

pandas/io/excel/_base.py

+2-3
Original file line numberDiff line numberDiff line change
@@ -590,9 +590,8 @@ def __new__(cls, path, engine=None, **kwargs):
590590
if engine == 'auto':
591591
engine = _get_default_writer(ext)
592592
except KeyError:
593-
error = ValueError("No engine for filetype: '{ext}'"
594-
.format(ext=ext))
595-
raise error
593+
raise ValueError("No engine for filetype: '{ext}'"
594+
.format(ext=ext))
596595
cls = get_writer(engine)
597596

598597
return object.__new__(cls)

pandas/io/excel/_util.py

+22-17
Original file line numberDiff line numberDiff line change
@@ -5,32 +5,39 @@
55

66
from pandas.core.dtypes.common import is_integer, is_list_like
77

8-
from pandas.core import config
9-
10-
_writer_extensions = ["xlsx", "xls", "xlsm"]
11-
12-
138
_writers = {}
149

1510

1611
def register_writer(klass):
17-
"""Adds engine to the excel writer registry. You must use this method to
18-
integrate with ``to_excel``. Also adds config options for any new
19-
``supported_extensions`` defined on the writer."""
12+
"""
13+
Add engine to the excel writer registry.io.excel.
14+
15+
You must use this method to integrate with ``to_excel``.
16+
17+
Parameters
18+
----------
19+
klass : ExcelWriter
20+
"""
2021
if not callable(klass):
2122
raise ValueError("Can only register callables as engines")
2223
engine_name = klass.engine
2324
_writers[engine_name] = klass
24-
for ext in klass.supported_extensions:
25-
if ext.startswith('.'):
26-
ext = ext[1:]
27-
if ext not in _writer_extensions:
28-
config.register_option("io.excel.{ext}.writer".format(ext=ext),
29-
engine_name, validator=str)
30-
_writer_extensions.append(ext)
3125

3226

3327
def _get_default_writer(ext):
28+
"""
29+
Return the default writer for the given extension.
30+
31+
Parameters
32+
----------
33+
ext : str
34+
The excel file extension for which to get the default engine.
35+
36+
Returns
37+
-------
38+
str
39+
The default engine for the extension.
40+
"""
3441
_default_writers = {'xlsx': 'openpyxl', 'xlsm': 'openpyxl', 'xls': 'xlwt'}
3542
try:
3643
import xlsxwriter # noqa
@@ -230,8 +237,6 @@ def _fill_mi_header(row, control_row):
230237

231238
return _maybe_convert_to_string(row), control_row
232239

233-
# fill blank if index_col not None
234-
235240

236241
def _pop_header_name(row, index_col):
237242
"""

pandas/tests/io/test_excel.py

+2-5
Original file line numberDiff line numberDiff line change
@@ -2359,7 +2359,7 @@ def test_register_writer(self):
23592359
class DummyClass(ExcelWriter):
23602360
called_save = False
23612361
called_write_cells = False
2362-
supported_extensions = ['test', 'xlsx', 'xls']
2362+
supported_extensions = ['xlsx', 'xls']
23632363
engine = 'dummy'
23642364

23652365
def save(self):
@@ -2377,12 +2377,9 @@ def check_called(func):
23772377

23782378
with pd.option_context('io.excel.xlsx.writer', 'dummy'):
23792379
register_writer(DummyClass)
2380-
writer = ExcelWriter('something.test')
2380+
writer = ExcelWriter('something.xlsx')
23812381
assert isinstance(writer, DummyClass)
23822382
df = tm.makeCustomDataframe(1, 1)
2383-
2384-
func = lambda: df.to_excel('something.test')
2385-
check_called(func)
23862383
check_called(lambda: df.to_excel('something.xlsx'))
23872384
check_called(
23882385
lambda: df.to_excel(

0 commit comments

Comments
 (0)