Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 249ab5e

Browse files
committed
BZ2File now uses the compresslevel argument given by the caller,
instead of ignoring it and always using a compression level of 9.
1 parent c92f622 commit 249ab5e

2 files changed

Lines changed: 9 additions & 2 deletions

File tree

Lib/bz2.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -75,11 +75,11 @@ def __init__(self, filename=None, mode="r", buffering=None,
7575
elif mode in ("w", "wb"):
7676
mode = "wb"
7777
mode_code = _MODE_WRITE
78-
self._compressor = BZ2Compressor()
78+
self._compressor = BZ2Compressor(compresslevel)
7979
elif mode in ("a", "ab"):
8080
mode = "ab"
8181
mode_code = _MODE_WRITE
82-
self._compressor = BZ2Compressor()
82+
self._compressor = BZ2Compressor(compresslevel)
8383
else:
8484
raise ValueError("Invalid mode: {!r}".format(mode))
8585

Lib/test/test_bz2.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -224,6 +224,13 @@ def testWriteChunks10(self):
224224
with open(self.filename, 'rb') as f:
225225
self.assertEqual(self.decompress(f.read()), self.TEXT)
226226

227+
def testWriteNonDefaultCompressLevel(self):
228+
expected = bz2.compress(self.TEXT, compresslevel=5)
229+
with BZ2File(self.filename, "w", compresslevel=5) as bz2f:
230+
bz2f.write(self.TEXT)
231+
with open(self.filename, "rb") as f:
232+
self.assertEqual(f.read(), expected)
233+
227234
def testWriteLines(self):
228235
with BZ2File(self.filename, "w") as bz2f:
229236
self.assertRaises(TypeError, bz2f.writelines)

0 commit comments

Comments
 (0)