Issue #13989: Document that GzipFile does not support text mode.
Also, give a more helpful error message when opened with an invalid mode string.
This commit is contained in:
parent
efe7c9d4d7
commit
30d94b7aea
|
@ -44,9 +44,11 @@ The module defines the following items:
|
|||
|
||||
The *mode* argument can be any of ``'r'``, ``'rb'``, ``'a'``, ``'ab'``, ``'w'``,
|
||||
or ``'wb'``, depending on whether the file will be read or written. The default
|
||||
is the mode of *fileobj* if discernible; otherwise, the default is ``'rb'``. If
|
||||
not given, the 'b' flag will be added to the mode to ensure the file is opened
|
||||
in binary mode for cross-platform portability.
|
||||
is the mode of *fileobj* if discernible; otherwise, the default is ``'rb'``.
|
||||
|
||||
Note that the file is always opened in binary mode; text mode is not
|
||||
supported. If you need to read a compressed file in text mode, wrap your
|
||||
:class:`GzipFile` with an :class:`io.TextIOWrapper`.
|
||||
|
||||
The *compresslevel* argument is an integer from ``1`` to ``9`` controlling the
|
||||
level of compression; ``1`` is fastest and produces the least compression, and
|
||||
|
|
11
Lib/gzip.py
11
Lib/gzip.py
|
@ -105,6 +105,9 @@ class GzipFile(io.BufferedIOBase):
|
|||
"""The GzipFile class simulates most of the methods of a file object with
|
||||
the exception of the readinto() and truncate() methods.
|
||||
|
||||
This class only supports opening files in binary mode. If you need to open a
|
||||
compressed file in text mode, wrap your GzipFile with an io.TextIOWrapper.
|
||||
|
||||
"""
|
||||
|
||||
myfileobj = None
|
||||
|
@ -131,8 +134,8 @@ class GzipFile(io.BufferedIOBase):
|
|||
The mode argument can be any of 'r', 'rb', 'a', 'ab', 'w', or 'wb',
|
||||
depending on whether the file will be read or written. The default
|
||||
is the mode of fileobj if discernible; otherwise, the default is 'rb'.
|
||||
Be aware that only the 'rb', 'ab', and 'wb' values should be used
|
||||
for cross-platform portability.
|
||||
A mode of 'r' is equivalent to one of 'rb', and similarly for 'w' and
|
||||
'wb', and 'a' and 'ab'.
|
||||
|
||||
The compresslevel argument is an integer from 1 to 9 controlling the
|
||||
level of compression; 1 is fastest and produces the least compression,
|
||||
|
@ -149,8 +152,8 @@ class GzipFile(io.BufferedIOBase):
|
|||
|
||||
"""
|
||||
|
||||
# guarantee the file is opened in binary mode on platforms
|
||||
# that care about that sort of thing
|
||||
if mode and ('t' in mode or 'U' in mode):
|
||||
raise IOError("Mode " + mode + " not supported")
|
||||
if mode and 'b' not in mode:
|
||||
mode += 'b'
|
||||
if fileobj is None:
|
||||
|
|
|
@ -113,6 +113,9 @@ Core and Builtins
|
|||
Library
|
||||
-------
|
||||
|
||||
- Issue #13989: Document that GzipFile does not support text mode, and give a
|
||||
more helpful error message when opened with an invalid mode string.
|
||||
|
||||
- Issue #13590: On OS X 10.7 and 10.6 with Xcode 4.2, building
|
||||
Distutils-based packages with C extension modules may fail because
|
||||
Apple has removed gcc-4.2, the version used to build python.org
|
||||
|
|
Loading…
Reference in New Issue