Commit be66af42 authored by Nadeem Vawda's avatar Nadeem Vawda

Clean up GzipFile mode string handling code.

parent d1a10713
...@@ -141,7 +141,7 @@ class GzipFile(io.BufferedIOBase): ...@@ -141,7 +141,7 @@ class GzipFile(io.BufferedIOBase):
""" """
if mode and ('t' in mode or 'U' in mode): if mode and ('t' in mode or 'U' in mode):
raise IOError("Mode " + mode + " not supported") raise ValueError("Invalid mode: {!r}".format(mode))
if mode and 'b' not in mode: if mode and 'b' not in mode:
mode += 'b' mode += 'b'
if fileobj is None: if fileobj is None:
...@@ -152,10 +152,9 @@ class GzipFile(io.BufferedIOBase): ...@@ -152,10 +152,9 @@ class GzipFile(io.BufferedIOBase):
else: else:
filename = '' filename = ''
if mode is None: if mode is None:
if hasattr(fileobj, 'mode'): mode = fileobj.mode mode = getattr(fileobj, 'mode', 'rb')
else: mode = 'rb'
if mode[0:1] == 'r': if mode.startswith('r'):
self.mode = READ self.mode = READ
# Set flag indicating start of a new member # Set flag indicating start of a new member
self._new_member = True self._new_member = True
...@@ -170,7 +169,7 @@ class GzipFile(io.BufferedIOBase): ...@@ -170,7 +169,7 @@ class GzipFile(io.BufferedIOBase):
self.min_readsize = 100 self.min_readsize = 100
fileobj = _PaddedFile(fileobj) fileobj = _PaddedFile(fileobj)
elif mode[0:1] == 'w' or mode[0:1] == 'a': elif mode.startswith(('w', 'a')):
self.mode = WRITE self.mode = WRITE
self._init_write(filename) self._init_write(filename)
self.compress = zlib.compressobj(compresslevel, self.compress = zlib.compressobj(compresslevel,
...@@ -179,7 +178,7 @@ class GzipFile(io.BufferedIOBase): ...@@ -179,7 +178,7 @@ class GzipFile(io.BufferedIOBase):
zlib.DEF_MEM_LEVEL, zlib.DEF_MEM_LEVEL,
0) 0)
else: else:
raise IOError("Mode " + mode + " not supported") raise ValueError("Invalid mode: {!r}".format(mode))
self.fileobj = fileobj self.fileobj = fileobj
self.offset = 0 self.offset = 0
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment