Skip to content

Commit 523f45b

Browse files
authored
Merge pull request #115 from alexander-beedie/additional-gzip-consts
Expose READ/WRITE gzip consts (in addition to existing FTEXT, FEXTRA, etc)
2 parents 396c1e7 + 66385e2 commit 523f45b

File tree

2 files changed

+15
-3
lines changed

2 files changed

+15
-3
lines changed

src/isal/igzip.py

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,7 @@
5454
READ_BUFFER_SIZE = 128 * 1024
5555

5656
FTEXT, FHCRC, FEXTRA, FNAME, FCOMMENT = 1, 2, 4, 8, 16
57+
READ, WRITE = 1, 2
5758

5859
try:
5960
BadGzipFile = gzip.BadGzipFile # type: ignore
@@ -158,13 +159,13 @@ def __init__(self, filename=None, mode=None,
158159
isal_zlib.ISAL_BEST_SPEED, isal_zlib.ISAL_BEST_COMPRESSION
159160
))
160161
super().__init__(filename, mode, compresslevel, fileobj, mtime)
161-
if self.mode == gzip.WRITE:
162+
if self.mode == WRITE:
162163
self.compress = isal_zlib.compressobj(compresslevel,
163164
isal_zlib.DEFLATED,
164165
-isal_zlib.MAX_WBITS,
165166
isal_zlib.DEF_MEM_LEVEL,
166167
0)
167-
if self.mode == gzip.READ:
168+
if self.mode == READ:
168169
raw = _IGzipReader(self.fileobj)
169170
self._buffer = io.BufferedReader(raw, buffer_size=READ_BUFFER_SIZE)
170171

@@ -197,7 +198,7 @@ def _write_gzip_header(self, compresslevel=_COMPRESS_LEVEL_TRADEOFF):
197198

198199
def write(self, data):
199200
self._check_not_closed()
200-
if self.mode != gzip.WRITE:
201+
if self.mode != WRITE:
201202
import errno
202203
raise OSError(errno.EBADF, "write() on read-only IGzipFile object")
203204

tests/test_gzip_compliance.py

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -646,6 +646,17 @@ def test_prepend_error(self):
646646
with igzip.open(self.filename, "rb") as f:
647647
f._buffer.raw._fp.prepend()
648648

649+
def test_public_consts(self):
650+
# Confirm that all of the gzip module public consts are
651+
# also accessible via igzip, for drop-in compatibility.
652+
self.assertEqual(gzip.FCOMMENT, igzip.FCOMMENT)
653+
self.assertEqual(gzip.FEXTRA, igzip.FEXTRA)
654+
self.assertEqual(gzip.FHCRC, igzip.FHCRC)
655+
self.assertEqual(gzip.FNAME, igzip.FNAME)
656+
self.assertEqual(gzip.FTEXT, igzip.FTEXT)
657+
self.assertEqual(gzip.READ, igzip.READ)
658+
self.assertEqual(gzip.WRITE, igzip.WRITE)
659+
649660

650661
class TestOpen(BaseTest):
651662
def test_binary_modes(self):

0 commit comments

Comments
 (0)