Commit 19e568d2 authored by Nadeem Vawda's avatar Nadeem Vawda

Issue #15677: Document that zlib and gzip accept a compression level of 0 to mean 'no compression'.

Patch by Brian Brazil.
parent 12489d98
...@@ -50,9 +50,10 @@ The module defines the following items: ...@@ -50,9 +50,10 @@ The module defines the following items:
supported. If you need to read a compressed file in text mode, wrap your supported. If you need to read a compressed file in text mode, wrap your
:class:`GzipFile` with an :class:`io.TextIOWrapper`. :class:`GzipFile` with an :class:`io.TextIOWrapper`.
The *compresslevel* argument is an integer from ``1`` to ``9`` controlling the The *compresslevel* argument is an integer from ``0`` to ``9`` controlling
level of compression; ``1`` is fastest and produces the least compression, and the level of compression; ``1`` is fastest and produces the least
``9`` is slowest and produces the most compression. The default is ``9``. compression, and ``9`` is slowest and produces the most compression. ``0``
is no compression. The default is ``9``.
The *mtime* argument is an optional numeric timestamp to be written to The *mtime* argument is an optional numeric timestamp to be written to
the stream when compressing. All :program:`gzip` compressed streams are the stream when compressing. All :program:`gzip` compressed streams are
......
...@@ -51,19 +51,20 @@ The available exception and functions in this module are: ...@@ -51,19 +51,20 @@ The available exception and functions in this module are:
.. function:: compress(data[, level]) .. function:: compress(data[, level])
Compresses the bytes in *data*, returning a bytes object containing compressed data. Compresses the bytes in *data*, returning a bytes object containing
*level* is an integer from ``1`` to ``9`` controlling the level of compression; compressed data. *level* is an integer from ``0`` to ``9`` controlling the
``1`` is fastest and produces the least compression, ``9`` is slowest and level of compression; ``1`` is fastest and produces the least compression,
produces the most. The default value is ``6``. Raises the :exc:`error` ``9`` is slowest and produces the most. ``0`` is no compression. The default
exception if any error occurs. value is ``6``. Raises the :exc:`error` exception if any error occurs.
.. function:: compressobj([level]) .. function:: compressobj([level])
Returns a compression object, to be used for compressing data streams that won't Returns a compression object, to be used for compressing data streams that won't
fit into memory at once. *level* is an integer from ``1`` to ``9`` controlling fit into memory at once. *level* is an integer from ``0`` to ``9`` controlling
the level of compression; ``1`` is fastest and produces the least compression, the level of compression; ``1`` is fastest and produces the least compression,
``9`` is slowest and produces the most. The default value is ``6``. ``9`` is slowest and produces the most. ``0`` is no compression. The default
value is ``6``.
.. function:: crc32(data[, value]) .. function:: crc32(data[, value])
......
...@@ -137,9 +137,10 @@ class GzipFile(io.BufferedIOBase): ...@@ -137,9 +137,10 @@ class GzipFile(io.BufferedIOBase):
A mode of 'r' is equivalent to one of 'rb', and similarly for 'w' and A mode of 'r' is equivalent to one of 'rb', and similarly for 'w' and
'wb', and 'a' and 'ab'. 'wb', and 'a' and 'ab'.
The compresslevel argument is an integer from 1 to 9 controlling the The compresslevel argument is an integer from 0 to 9 controlling the
level of compression; 1 is fastest and produces the least compression, level of compression; 1 is fastest and produces the least compression,
and 9 is slowest and produces the most compression. The default is 9. and 9 is slowest and produces the most compression. 0 is no compression
at all. The default is 9.
The mtime argument is an optional numeric timestamp to be written The mtime argument is an optional numeric timestamp to be written
to the stream when compressing. All gzip compressed streams to the stream when compressing. All gzip compressed streams
...@@ -573,7 +574,7 @@ class GzipFile(io.BufferedIOBase): ...@@ -573,7 +574,7 @@ class GzipFile(io.BufferedIOBase):
def compress(data, compresslevel=9): def compress(data, compresslevel=9):
"""Compress data in one shot and return the compressed string. """Compress data in one shot and return the compressed string.
Optional argument is the compression level, in range of 1-9. Optional argument is the compression level, in range of 0-9.
""" """
buf = io.BytesIO() buf = io.BytesIO()
with GzipFile(fileobj=buf, mode='wb', compresslevel=compresslevel) as f: with GzipFile(fileobj=buf, mode='wb', compresslevel=compresslevel) as f:
......
...@@ -714,6 +714,9 @@ Tools/Demos ...@@ -714,6 +714,9 @@ Tools/Demos
Documentation Documentation
------------- -------------
- Issue #15677: Document that zlib and gzip accept a compression level of 0 to
mean 'no compression'. Patch by Brian Brazil.
- Issue #8040: added a version switcher to the documentation. Patch by - Issue #8040: added a version switcher to the documentation. Patch by
Yury Selivanov. Yury Selivanov.
......
...@@ -81,7 +81,7 @@ zlib_error(z_stream zst, int err, char *msg) ...@@ -81,7 +81,7 @@ zlib_error(z_stream zst, int err, char *msg)
PyDoc_STRVAR(compressobj__doc__, PyDoc_STRVAR(compressobj__doc__,
"compressobj([level]) -- Return a compressor object.\n" "compressobj([level]) -- Return a compressor object.\n"
"\n" "\n"
"Optional arg level is the compression level, in 1-9."); "Optional arg level is the compression level, in 0-9.");
PyDoc_STRVAR(decompressobj__doc__, PyDoc_STRVAR(decompressobj__doc__,
"decompressobj([wbits]) -- Return a decompressor object.\n" "decompressobj([wbits]) -- Return a decompressor object.\n"
...@@ -115,7 +115,7 @@ newcompobject(PyTypeObject *type) ...@@ -115,7 +115,7 @@ newcompobject(PyTypeObject *type)
PyDoc_STRVAR(compress__doc__, PyDoc_STRVAR(compress__doc__,
"compress(string[, level]) -- Returned compressed string.\n" "compress(string[, level]) -- Returned compressed string.\n"
"\n" "\n"
"Optional arg level is the compression level, in 1-9."); "Optional arg level is the compression level, in 0-9.");
static PyObject * static PyObject *
PyZlib_compress(PyObject *self, PyObject *args) PyZlib_compress(PyObject *self, PyObject *args)
...@@ -1135,7 +1135,7 @@ PyDoc_STRVAR(zlib_module_documentation, ...@@ -1135,7 +1135,7 @@ PyDoc_STRVAR(zlib_module_documentation,
"zlib library, which is based on GNU zip.\n" "zlib library, which is based on GNU zip.\n"
"\n" "\n"
"adler32(string[, start]) -- Compute an Adler-32 checksum.\n" "adler32(string[, start]) -- Compute an Adler-32 checksum.\n"
"compress(string[, level]) -- Compress string, with compression level in 1-9.\n" "compress(string[, level]) -- Compress string, with compression level in 0-9.\n"
"compressobj([level]) -- Return a compressor object.\n" "compressobj([level]) -- Return a compressor object.\n"
"crc32(string[, start]) -- Compute a CRC-32 checksum.\n" "crc32(string[, start]) -- Compute a CRC-32 checksum.\n"
"decompress(string,[wbits],[bufsize]) -- Decompresses a compressed string.\n" "decompress(string,[wbits],[bufsize]) -- Decompresses a compressed string.\n"
......
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