Skip to content

Commit b0c6c4a

Browse files
committed
BUG: Infer compression by default in read_fwf() (#22199)
1 parent d78bd7a commit b0c6c4a

File tree

2 files changed

+12
-10
lines changed

2 files changed

+12
-10
lines changed

pandas/io/parsers.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -427,7 +427,7 @@ def _read(filepath_or_buffer, kwds):
427427
encoding = re.sub('_', '-', encoding).lower()
428428
kwds['encoding'] = encoding
429429

430-
compression = kwds.get('compression')
430+
compression = kwds.get('compression', 'infer')
431431
compression = _infer_compression(filepath_or_buffer, compression)
432432
filepath_or_buffer, _, compression, should_close = get_filepath_or_buffer(
433433
filepath_or_buffer, encoding, compression)

pandas/tests/io/parser/test_read_fwf.py

+11-9
Original file line numberDiff line numberDiff line change
@@ -206,15 +206,17 @@ def test_fwf_compression(self):
206206
expected = read_fwf(StringIO(data), widths=widths, names=names)
207207
if compat.PY3:
208208
data = bytes(data, encoding='utf-8')
209-
comps = [('gzip', gzip.GzipFile), ('bz2', bz2.BZ2File)]
210-
for comp_name, compresser in comps:
211-
with tm.ensure_clean() as path:
212-
tmp = compresser(path, mode='wb')
213-
tmp.write(data)
214-
tmp.close()
215-
result = read_fwf(path, widths=widths, names=names,
216-
compression=comp_name)
217-
tm.assert_frame_equal(result, expected)
209+
comps = [('gzip', 'gz', gzip.GzipFile), ('bz2', 'bz2', bz2.BZ2File)]
210+
for comp_name, extension, compresser in comps:
211+
for kwargs in [
212+
{'compression': comp_name}, {'compression': 'infer'}, {}]:
213+
with tm.ensure_clean(filename='tmp.%s' % extension) as path:
214+
tmp = compresser(path, mode='wb')
215+
tmp.write(data)
216+
tmp.close()
217+
result = read_fwf(path, widths=widths, names=names,
218+
**kwargs)
219+
tm.assert_frame_equal(result, expected)
218220

219221
def test_comment_fwf(self):
220222
data = """

0 commit comments

Comments
 (0)