2007-08-15 11:28:22 -03:00
|
|
|
|
:mod:`zlib` --- Compression compatible with :program:`gzip`
|
|
|
|
|
===========================================================
|
|
|
|
|
|
|
|
|
|
.. module:: zlib
|
2009-09-16 12:58:14 -03:00
|
|
|
|
:synopsis: Low-level interface to compression and decompression routines
|
|
|
|
|
compatible with gzip.
|
2007-08-15 11:28:22 -03:00
|
|
|
|
|
2016-06-11 16:02:54 -03:00
|
|
|
|
--------------
|
2007-08-15 11:28:22 -03:00
|
|
|
|
|
|
|
|
|
For applications that require data compression, the functions in this module
|
|
|
|
|
allow compression and decompression, using the zlib library. The zlib library
|
2020-01-03 08:10:16 -04:00
|
|
|
|
has its own home page at https://www.zlib.net. There are known
|
2007-08-15 11:28:22 -03:00
|
|
|
|
incompatibilities between the Python module and versions of the zlib library
|
2020-01-03 08:10:16 -04:00
|
|
|
|
earlier than 1.1.3; 1.1.3 has a `security vulnerability <https://zlib.net/zlib_faq.html#faq33>`_, so we recommend using
|
2007-08-15 11:28:22 -03:00
|
|
|
|
1.1.4 or later.
|
|
|
|
|
|
|
|
|
|
zlib's functions have many options and often need to be used in a particular
|
|
|
|
|
order. This documentation doesn't attempt to cover all of the permutations;
|
|
|
|
|
consult the zlib manual at http://www.zlib.net/manual.html for authoritative
|
|
|
|
|
information.
|
|
|
|
|
|
2012-01-16 11:55:55 -04:00
|
|
|
|
For reading and writing ``.gz`` files see the :mod:`gzip` module.
|
Merged revisions 58817-58861 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk
........
r58822 | brett.cannon | 2007-11-02 23:47:02 -0700 (Fri, 02 Nov 2007) | 2 lines
Add a missing quotation mark.
........
r58840 | skip.montanaro | 2007-11-04 07:56:52 -0800 (Sun, 04 Nov 2007) | 2 lines
Note change to get_dialect semantics in 2.5. Will backport to 2.5.
........
r58844 | georg.brandl | 2007-11-04 09:43:49 -0800 (Sun, 04 Nov 2007) | 2 lines
Fix syntax for versionchanged markup.
........
r58850 | gregory.p.smith | 2007-11-04 18:32:26 -0800 (Sun, 04 Nov 2007) | 9 lines
Fixes bug 477182 on pybsddb.sf.net. DB objects now load the flags and
pay attention to them when opening an existing database. This means
that d[] behaves properly even on databases previously created with DB_DUP
or DB_DUPSORT flags to allow duplicate keys.
http://sourceforge.net/tracker/index.php?func=detail&aid=477182&group_id=13900&atid=113900
Do not backport, this bugfix could be considered an API change.
........
r58851 | gregory.p.smith | 2007-11-04 18:56:31 -0800 (Sun, 04 Nov 2007) | 3 lines
Add the bsddb.db.DBEnv.lock_id_free method.
Improve test_lock's tempdir creation and cleanup.
........
r58852 | gregory.p.smith | 2007-11-05 01:06:28 -0800 (Mon, 05 Nov 2007) | 3 lines
* db->get_types is only available in BerkeleyDB >= 4.2
* get compiling with older versions of python again for a stand alone release.
........
r58853 | gregory.p.smith | 2007-11-05 01:07:40 -0800 (Mon, 05 Nov 2007) | 2 lines
* db->get_flags is only available in BerkeleyDB >= 4.2
........
r58854 | mark.summerfield | 2007-11-05 01:22:48 -0800 (Mon, 05 Nov 2007) | 3 lines
Added cross-references between the various archive file formats.
........
r58857 | mark.summerfield | 2007-11-05 06:38:50 -0800 (Mon, 05 Nov 2007) | 5 lines
Clarified the fact that you can have comments for individual archive
members even though comments to the archive itself aren't currently
supported.
........
2007-11-05 15:43:04 -04:00
|
|
|
|
|
2007-08-15 11:28:22 -03:00
|
|
|
|
The available exception and functions in this module are:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
.. exception:: error
|
|
|
|
|
|
|
|
|
|
Exception raised on compression and decompression errors.
|
|
|
|
|
|
|
|
|
|
|
Merged revisions 68450,68480-68481,68493,68495,68501,68512,68514-68515,68534-68536,68552,68563,68570-68572,68575,68582,68596,68623-68624,68628 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk
........
r68450 | jeffrey.yasskin | 2009-01-09 10:47:07 -0600 (Fri, 09 Jan 2009) | 3 lines
Fix issue 4884, preventing a crash in the socket code when python is compiled
with llvm-gcc and run with a glibc <2.10.
........
r68480 | vinay.sajip | 2009-01-10 07:38:04 -0600 (Sat, 10 Jan 2009) | 1 line
Minor documentation changes cross-referencing NullHandler to the documentation on configuring logging in a library.
........
r68481 | vinay.sajip | 2009-01-10 07:42:04 -0600 (Sat, 10 Jan 2009) | 1 line
Corrected an incorrect self-reference.
........
r68493 | benjamin.peterson | 2009-01-10 11:18:55 -0600 (Sat, 10 Jan 2009) | 1 line
rewrite verbose conditionals
........
r68495 | benjamin.peterson | 2009-01-10 11:36:44 -0600 (Sat, 10 Jan 2009) | 1 line
tp_iter only exists with Py_TPFLAGS_HAVE_ITER #4901
........
r68501 | vinay.sajip | 2009-01-10 13:22:57 -0600 (Sat, 10 Jan 2009) | 1 line
Corrected minor typo and added .currentmodule directives to fix missing cross-references.
........
r68512 | benjamin.peterson | 2009-01-10 16:42:10 -0600 (Sat, 10 Jan 2009) | 1 line
make tests fail if they can't be imported
........
r68514 | benjamin.peterson | 2009-01-10 17:41:59 -0600 (Sat, 10 Jan 2009) | 1 line
move seealso to a more appropiate place
........
r68515 | benjamin.peterson | 2009-01-10 17:49:08 -0600 (Sat, 10 Jan 2009) | 1 line
macos 9 isn't supported
........
r68534 | gregory.p.smith | 2009-01-11 11:53:33 -0600 (Sun, 11 Jan 2009) | 2 lines
correct email address
........
r68535 | gregory.p.smith | 2009-01-11 11:57:54 -0600 (Sun, 11 Jan 2009) | 9 lines
Update the documentation for binascii and zlib crc32/adler32 functions
to better describe the signed vs unsigned return value behavior on
different platforms and versions of python. Mention the workaround to
make them all return the same thing by using & 0xffffffff.
Fixes issue4903.
Also needs to be merged into release26-maint, release30-maint, & py3k.
........
r68536 | benjamin.peterson | 2009-01-11 13:48:15 -0600 (Sun, 11 Jan 2009) | 1 line
add email addresses
........
r68552 | vinay.sajip | 2009-01-12 14:36:18 -0600 (Mon, 12 Jan 2009) | 1 line
Minor changes/corrections in markup.
........
r68563 | benjamin.peterson | 2009-01-12 19:49:10 -0600 (Mon, 12 Jan 2009) | 1 line
small logic correction
........
r68570 | raymond.hettinger | 2009-01-13 03:08:32 -0600 (Tue, 13 Jan 2009) | 5 lines
Issue 4922: Incorrect comments for MutableSet.add() and MutableSet.discard().
Needs to be backported to 2.6 and forward ported to 3.0 and 3.1.
........
r68571 | armin.ronacher | 2009-01-13 05:52:23 -0600 (Tue, 13 Jan 2009) | 3 lines
ast.literal_eval can properly evaluate complex numbers now. This fixes issue4907.
........
r68572 | andrew.kuchling | 2009-01-13 07:40:54 -0600 (Tue, 13 Jan 2009) | 1 line
Note that first coord. is left alone
........
r68575 | thomas.heller | 2009-01-13 11:32:28 -0600 (Tue, 13 Jan 2009) | 1 line
Fix refcount leak in error cases. Bug found by coverity.
........
r68582 | georg.brandl | 2009-01-13 16:14:01 -0600 (Tue, 13 Jan 2009) | 2 lines
Use assertRaises.
........
r68596 | amaury.forgeotdarc | 2009-01-13 17:39:22 -0600 (Tue, 13 Jan 2009) | 3 lines
#1162154: inspect.getmembers() now skips attributes that raise AttributeError,
e.g. a __slots__ attribute which has not been set.
........
r68623 | vinay.sajip | 2009-01-15 16:48:13 -0600 (Thu, 15 Jan 2009) | 1 line
Made minor changes/corrections in markup. Added a couple of section headings.
........
r68624 | vinay.sajip | 2009-01-15 17:04:47 -0600 (Thu, 15 Jan 2009) | 1 line
Minor changes/corrections in markup.
........
r68628 | benjamin.peterson | 2009-01-15 20:55:24 -0600 (Thu, 15 Jan 2009) | 1 line
compare with == not is #4946
........
2009-01-15 23:54:08 -04:00
|
|
|
|
.. function:: adler32(data[, value])
|
2007-08-15 11:28:22 -03:00
|
|
|
|
|
2015-11-02 08:10:23 -04:00
|
|
|
|
Computes an Adler-32 checksum of *data*. (An Adler-32 checksum is almost as
|
2015-12-11 01:19:29 -04:00
|
|
|
|
reliable as a CRC32 but can be computed much more quickly.) The result
|
|
|
|
|
is an unsigned 32-bit integer. If *value* is present, it is used as
|
|
|
|
|
the starting value of the checksum; otherwise, a default value of 1
|
|
|
|
|
is used. Passing in *value* allows computing a running checksum over the
|
Merged revisions 68450,68480-68481,68493,68495,68501,68512,68514-68515,68534-68536,68552,68563,68570-68572,68575,68582,68596,68623-68624,68628 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk
........
r68450 | jeffrey.yasskin | 2009-01-09 10:47:07 -0600 (Fri, 09 Jan 2009) | 3 lines
Fix issue 4884, preventing a crash in the socket code when python is compiled
with llvm-gcc and run with a glibc <2.10.
........
r68480 | vinay.sajip | 2009-01-10 07:38:04 -0600 (Sat, 10 Jan 2009) | 1 line
Minor documentation changes cross-referencing NullHandler to the documentation on configuring logging in a library.
........
r68481 | vinay.sajip | 2009-01-10 07:42:04 -0600 (Sat, 10 Jan 2009) | 1 line
Corrected an incorrect self-reference.
........
r68493 | benjamin.peterson | 2009-01-10 11:18:55 -0600 (Sat, 10 Jan 2009) | 1 line
rewrite verbose conditionals
........
r68495 | benjamin.peterson | 2009-01-10 11:36:44 -0600 (Sat, 10 Jan 2009) | 1 line
tp_iter only exists with Py_TPFLAGS_HAVE_ITER #4901
........
r68501 | vinay.sajip | 2009-01-10 13:22:57 -0600 (Sat, 10 Jan 2009) | 1 line
Corrected minor typo and added .currentmodule directives to fix missing cross-references.
........
r68512 | benjamin.peterson | 2009-01-10 16:42:10 -0600 (Sat, 10 Jan 2009) | 1 line
make tests fail if they can't be imported
........
r68514 | benjamin.peterson | 2009-01-10 17:41:59 -0600 (Sat, 10 Jan 2009) | 1 line
move seealso to a more appropiate place
........
r68515 | benjamin.peterson | 2009-01-10 17:49:08 -0600 (Sat, 10 Jan 2009) | 1 line
macos 9 isn't supported
........
r68534 | gregory.p.smith | 2009-01-11 11:53:33 -0600 (Sun, 11 Jan 2009) | 2 lines
correct email address
........
r68535 | gregory.p.smith | 2009-01-11 11:57:54 -0600 (Sun, 11 Jan 2009) | 9 lines
Update the documentation for binascii and zlib crc32/adler32 functions
to better describe the signed vs unsigned return value behavior on
different platforms and versions of python. Mention the workaround to
make them all return the same thing by using & 0xffffffff.
Fixes issue4903.
Also needs to be merged into release26-maint, release30-maint, & py3k.
........
r68536 | benjamin.peterson | 2009-01-11 13:48:15 -0600 (Sun, 11 Jan 2009) | 1 line
add email addresses
........
r68552 | vinay.sajip | 2009-01-12 14:36:18 -0600 (Mon, 12 Jan 2009) | 1 line
Minor changes/corrections in markup.
........
r68563 | benjamin.peterson | 2009-01-12 19:49:10 -0600 (Mon, 12 Jan 2009) | 1 line
small logic correction
........
r68570 | raymond.hettinger | 2009-01-13 03:08:32 -0600 (Tue, 13 Jan 2009) | 5 lines
Issue 4922: Incorrect comments for MutableSet.add() and MutableSet.discard().
Needs to be backported to 2.6 and forward ported to 3.0 and 3.1.
........
r68571 | armin.ronacher | 2009-01-13 05:52:23 -0600 (Tue, 13 Jan 2009) | 3 lines
ast.literal_eval can properly evaluate complex numbers now. This fixes issue4907.
........
r68572 | andrew.kuchling | 2009-01-13 07:40:54 -0600 (Tue, 13 Jan 2009) | 1 line
Note that first coord. is left alone
........
r68575 | thomas.heller | 2009-01-13 11:32:28 -0600 (Tue, 13 Jan 2009) | 1 line
Fix refcount leak in error cases. Bug found by coverity.
........
r68582 | georg.brandl | 2009-01-13 16:14:01 -0600 (Tue, 13 Jan 2009) | 2 lines
Use assertRaises.
........
r68596 | amaury.forgeotdarc | 2009-01-13 17:39:22 -0600 (Tue, 13 Jan 2009) | 3 lines
#1162154: inspect.getmembers() now skips attributes that raise AttributeError,
e.g. a __slots__ attribute which has not been set.
........
r68623 | vinay.sajip | 2009-01-15 16:48:13 -0600 (Thu, 15 Jan 2009) | 1 line
Made minor changes/corrections in markup. Added a couple of section headings.
........
r68624 | vinay.sajip | 2009-01-15 17:04:47 -0600 (Thu, 15 Jan 2009) | 1 line
Minor changes/corrections in markup.
........
r68628 | benjamin.peterson | 2009-01-15 20:55:24 -0600 (Thu, 15 Jan 2009) | 1 line
compare with == not is #4946
........
2009-01-15 23:54:08 -04:00
|
|
|
|
concatenation of several inputs. The algorithm is not cryptographically
|
2007-08-15 11:28:22 -03:00
|
|
|
|
strong, and should not be used for authentication or digital signatures. Since
|
|
|
|
|
the algorithm is designed for use as a checksum algorithm, it is not suitable
|
|
|
|
|
for use as a general hash algorithm.
|
|
|
|
|
|
2015-12-11 01:19:29 -04:00
|
|
|
|
.. versionchanged:: 3.0
|
|
|
|
|
Always returns an unsigned value.
|
|
|
|
|
To generate the same numeric value across all Python versions and
|
|
|
|
|
platforms, use ``adler32(data) & 0xffffffff``.
|
Merged revisions 68450,68480-68481,68493,68495,68501,68512,68514-68515,68534-68536,68552,68563,68570-68572,68575,68582,68596,68623-68624,68628 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk
........
r68450 | jeffrey.yasskin | 2009-01-09 10:47:07 -0600 (Fri, 09 Jan 2009) | 3 lines
Fix issue 4884, preventing a crash in the socket code when python is compiled
with llvm-gcc and run with a glibc <2.10.
........
r68480 | vinay.sajip | 2009-01-10 07:38:04 -0600 (Sat, 10 Jan 2009) | 1 line
Minor documentation changes cross-referencing NullHandler to the documentation on configuring logging in a library.
........
r68481 | vinay.sajip | 2009-01-10 07:42:04 -0600 (Sat, 10 Jan 2009) | 1 line
Corrected an incorrect self-reference.
........
r68493 | benjamin.peterson | 2009-01-10 11:18:55 -0600 (Sat, 10 Jan 2009) | 1 line
rewrite verbose conditionals
........
r68495 | benjamin.peterson | 2009-01-10 11:36:44 -0600 (Sat, 10 Jan 2009) | 1 line
tp_iter only exists with Py_TPFLAGS_HAVE_ITER #4901
........
r68501 | vinay.sajip | 2009-01-10 13:22:57 -0600 (Sat, 10 Jan 2009) | 1 line
Corrected minor typo and added .currentmodule directives to fix missing cross-references.
........
r68512 | benjamin.peterson | 2009-01-10 16:42:10 -0600 (Sat, 10 Jan 2009) | 1 line
make tests fail if they can't be imported
........
r68514 | benjamin.peterson | 2009-01-10 17:41:59 -0600 (Sat, 10 Jan 2009) | 1 line
move seealso to a more appropiate place
........
r68515 | benjamin.peterson | 2009-01-10 17:49:08 -0600 (Sat, 10 Jan 2009) | 1 line
macos 9 isn't supported
........
r68534 | gregory.p.smith | 2009-01-11 11:53:33 -0600 (Sun, 11 Jan 2009) | 2 lines
correct email address
........
r68535 | gregory.p.smith | 2009-01-11 11:57:54 -0600 (Sun, 11 Jan 2009) | 9 lines
Update the documentation for binascii and zlib crc32/adler32 functions
to better describe the signed vs unsigned return value behavior on
different platforms and versions of python. Mention the workaround to
make them all return the same thing by using & 0xffffffff.
Fixes issue4903.
Also needs to be merged into release26-maint, release30-maint, & py3k.
........
r68536 | benjamin.peterson | 2009-01-11 13:48:15 -0600 (Sun, 11 Jan 2009) | 1 line
add email addresses
........
r68552 | vinay.sajip | 2009-01-12 14:36:18 -0600 (Mon, 12 Jan 2009) | 1 line
Minor changes/corrections in markup.
........
r68563 | benjamin.peterson | 2009-01-12 19:49:10 -0600 (Mon, 12 Jan 2009) | 1 line
small logic correction
........
r68570 | raymond.hettinger | 2009-01-13 03:08:32 -0600 (Tue, 13 Jan 2009) | 5 lines
Issue 4922: Incorrect comments for MutableSet.add() and MutableSet.discard().
Needs to be backported to 2.6 and forward ported to 3.0 and 3.1.
........
r68571 | armin.ronacher | 2009-01-13 05:52:23 -0600 (Tue, 13 Jan 2009) | 3 lines
ast.literal_eval can properly evaluate complex numbers now. This fixes issue4907.
........
r68572 | andrew.kuchling | 2009-01-13 07:40:54 -0600 (Tue, 13 Jan 2009) | 1 line
Note that first coord. is left alone
........
r68575 | thomas.heller | 2009-01-13 11:32:28 -0600 (Tue, 13 Jan 2009) | 1 line
Fix refcount leak in error cases. Bug found by coverity.
........
r68582 | georg.brandl | 2009-01-13 16:14:01 -0600 (Tue, 13 Jan 2009) | 2 lines
Use assertRaises.
........
r68596 | amaury.forgeotdarc | 2009-01-13 17:39:22 -0600 (Tue, 13 Jan 2009) | 3 lines
#1162154: inspect.getmembers() now skips attributes that raise AttributeError,
e.g. a __slots__ attribute which has not been set.
........
r68623 | vinay.sajip | 2009-01-15 16:48:13 -0600 (Thu, 15 Jan 2009) | 1 line
Made minor changes/corrections in markup. Added a couple of section headings.
........
r68624 | vinay.sajip | 2009-01-15 17:04:47 -0600 (Thu, 15 Jan 2009) | 1 line
Minor changes/corrections in markup.
........
r68628 | benjamin.peterson | 2009-01-15 20:55:24 -0600 (Thu, 15 Jan 2009) | 1 line
compare with == not is #4946
........
2009-01-15 23:54:08 -04:00
|
|
|
|
|
2007-08-15 11:28:22 -03:00
|
|
|
|
|
2021-09-02 12:02:59 -03:00
|
|
|
|
.. function:: compress(data, /, level=-1, wbits=MAX_WBITS)
|
2007-08-15 11:28:22 -03:00
|
|
|
|
|
2011-01-08 17:04:25 -04:00
|
|
|
|
Compresses the bytes in *data*, returning a bytes object containing compressed data.
|
2016-02-10 06:06:36 -04:00
|
|
|
|
*level* is an integer from ``0`` to ``9`` or ``-1`` controlling the level of compression;
|
2018-03-07 01:05:37 -04:00
|
|
|
|
``1`` (Z_BEST_SPEED) is fastest and produces the least compression, ``9`` (Z_BEST_COMPRESSION)
|
|
|
|
|
is slowest and produces the most. ``0`` (Z_NO_COMPRESSION) is no compression.
|
|
|
|
|
The default value is ``-1`` (Z_DEFAULT_COMPRESSION). Z_DEFAULT_COMPRESSION represents a default
|
2016-02-10 06:06:36 -04:00
|
|
|
|
compromise between speed and compression (currently equivalent to level 6).
|
2021-09-02 12:02:59 -03:00
|
|
|
|
|
|
|
|
|
.. _compress-wbits:
|
|
|
|
|
|
|
|
|
|
The *wbits* argument controls the size of the history buffer (or the
|
|
|
|
|
"window size") used when compressing data, and whether a header and
|
|
|
|
|
trailer is included in the output. It can take several ranges of values,
|
|
|
|
|
defaulting to ``15`` (MAX_WBITS):
|
|
|
|
|
|
|
|
|
|
* +9 to +15: The base-two logarithm of the window size, which
|
|
|
|
|
therefore ranges between 512 and 32768. Larger values produce
|
|
|
|
|
better compression at the expense of greater memory usage. The
|
|
|
|
|
resulting output will include a zlib-specific header and trailer.
|
|
|
|
|
|
|
|
|
|
* −9 to −15: Uses the absolute value of *wbits* as the
|
|
|
|
|
window size logarithm, while producing a raw output stream with no
|
|
|
|
|
header or trailing checksum.
|
|
|
|
|
|
|
|
|
|
* +25 to +31 = 16 + (9 to 15): Uses the low 4 bits of the value as the
|
|
|
|
|
window size logarithm, while including a basic :program:`gzip` header
|
|
|
|
|
and trailing checksum in the output.
|
|
|
|
|
|
2012-11-11 09:14:47 -04:00
|
|
|
|
Raises the :exc:`error` exception if any error occurs.
|
2007-08-15 11:28:22 -03:00
|
|
|
|
|
2016-02-10 06:06:36 -04:00
|
|
|
|
.. versionchanged:: 3.6
|
2016-06-25 16:47:04 -03:00
|
|
|
|
*level* can now be used as a keyword parameter.
|
2016-02-10 06:06:36 -04:00
|
|
|
|
|
2021-09-02 12:02:59 -03:00
|
|
|
|
.. versionchanged:: 3.11
|
|
|
|
|
The *wbits* parameter is now available to set window bits and
|
|
|
|
|
compression type.
|
2007-08-15 11:28:22 -03:00
|
|
|
|
|
2018-03-07 01:05:37 -04:00
|
|
|
|
.. function:: compressobj(level=-1, method=DEFLATED, wbits=MAX_WBITS, memLevel=DEF_MEM_LEVEL, strategy=Z_DEFAULT_STRATEGY[, zdict])
|
2007-08-15 11:28:22 -03:00
|
|
|
|
|
|
|
|
|
Returns a compression object, to be used for compressing data streams that won't
|
2012-06-20 21:13:12 -03:00
|
|
|
|
fit into memory at once.
|
|
|
|
|
|
2016-02-03 03:06:33 -04:00
|
|
|
|
*level* is the compression level -- an integer from ``0`` to ``9`` or ``-1``.
|
2018-03-07 01:05:37 -04:00
|
|
|
|
A value of ``1`` (Z_BEST_SPEED) is fastest and produces the least compression,
|
|
|
|
|
while a value of ``9`` (Z_BEST_COMPRESSION) is slowest and produces the most.
|
|
|
|
|
``0`` (Z_NO_COMPRESSION) is no compression. The default value is ``-1`` (Z_DEFAULT_COMPRESSION).
|
|
|
|
|
Z_DEFAULT_COMPRESSION represents a default compromise between speed and compression
|
|
|
|
|
(currently equivalent to level 6).
|
2012-06-21 20:40:49 -03:00
|
|
|
|
|
|
|
|
|
*method* is the compression algorithm. Currently, the only supported value is
|
2018-03-07 01:05:37 -04:00
|
|
|
|
:const:`DEFLATED`.
|
2012-06-21 20:40:49 -03:00
|
|
|
|
|
2021-09-02 12:02:59 -03:00
|
|
|
|
The *wbits* parameter controls the size of the history buffer (or the
|
|
|
|
|
"window size"), and what header and trailer format will be used. It has
|
|
|
|
|
the same meaning as `described for compress() <#compress-wbits>`__.
|
2012-06-21 20:40:49 -03:00
|
|
|
|
|
2015-09-08 22:01:13 -03:00
|
|
|
|
The *memLevel* argument controls the amount of memory used for the
|
|
|
|
|
internal compression state. Valid values range from ``1`` to ``9``.
|
|
|
|
|
Higher values use more memory, but are faster and produce smaller output.
|
2012-06-21 20:40:49 -03:00
|
|
|
|
|
|
|
|
|
*strategy* is used to tune the compression algorithm. Possible values are
|
2018-03-07 01:05:37 -04:00
|
|
|
|
:const:`Z_DEFAULT_STRATEGY`, :const:`Z_FILTERED`, :const:`Z_HUFFMAN_ONLY`,
|
|
|
|
|
:const:`Z_RLE` (zlib 1.2.0.1) and :const:`Z_FIXED` (zlib 1.2.2.2).
|
2012-06-20 21:13:12 -03:00
|
|
|
|
|
|
|
|
|
*zdict* is a predefined compression dictionary. This is a sequence of bytes
|
|
|
|
|
(such as a :class:`bytes` object) containing subsequences that are expected
|
|
|
|
|
to occur frequently in the data that is to be compressed. Those subsequences
|
|
|
|
|
that are expected to be most common should come at the end of the dictionary.
|
2007-08-15 11:28:22 -03:00
|
|
|
|
|
2012-06-26 03:51:17 -03:00
|
|
|
|
.. versionchanged:: 3.3
|
2013-10-17 14:51:34 -03:00
|
|
|
|
Added the *zdict* parameter and keyword argument support.
|
2012-06-26 03:51:17 -03:00
|
|
|
|
|
2007-08-15 11:28:22 -03:00
|
|
|
|
|
Merged revisions 68450,68480-68481,68493,68495,68501,68512,68514-68515,68534-68536,68552,68563,68570-68572,68575,68582,68596,68623-68624,68628 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk
........
r68450 | jeffrey.yasskin | 2009-01-09 10:47:07 -0600 (Fri, 09 Jan 2009) | 3 lines
Fix issue 4884, preventing a crash in the socket code when python is compiled
with llvm-gcc and run with a glibc <2.10.
........
r68480 | vinay.sajip | 2009-01-10 07:38:04 -0600 (Sat, 10 Jan 2009) | 1 line
Minor documentation changes cross-referencing NullHandler to the documentation on configuring logging in a library.
........
r68481 | vinay.sajip | 2009-01-10 07:42:04 -0600 (Sat, 10 Jan 2009) | 1 line
Corrected an incorrect self-reference.
........
r68493 | benjamin.peterson | 2009-01-10 11:18:55 -0600 (Sat, 10 Jan 2009) | 1 line
rewrite verbose conditionals
........
r68495 | benjamin.peterson | 2009-01-10 11:36:44 -0600 (Sat, 10 Jan 2009) | 1 line
tp_iter only exists with Py_TPFLAGS_HAVE_ITER #4901
........
r68501 | vinay.sajip | 2009-01-10 13:22:57 -0600 (Sat, 10 Jan 2009) | 1 line
Corrected minor typo and added .currentmodule directives to fix missing cross-references.
........
r68512 | benjamin.peterson | 2009-01-10 16:42:10 -0600 (Sat, 10 Jan 2009) | 1 line
make tests fail if they can't be imported
........
r68514 | benjamin.peterson | 2009-01-10 17:41:59 -0600 (Sat, 10 Jan 2009) | 1 line
move seealso to a more appropiate place
........
r68515 | benjamin.peterson | 2009-01-10 17:49:08 -0600 (Sat, 10 Jan 2009) | 1 line
macos 9 isn't supported
........
r68534 | gregory.p.smith | 2009-01-11 11:53:33 -0600 (Sun, 11 Jan 2009) | 2 lines
correct email address
........
r68535 | gregory.p.smith | 2009-01-11 11:57:54 -0600 (Sun, 11 Jan 2009) | 9 lines
Update the documentation for binascii and zlib crc32/adler32 functions
to better describe the signed vs unsigned return value behavior on
different platforms and versions of python. Mention the workaround to
make them all return the same thing by using & 0xffffffff.
Fixes issue4903.
Also needs to be merged into release26-maint, release30-maint, & py3k.
........
r68536 | benjamin.peterson | 2009-01-11 13:48:15 -0600 (Sun, 11 Jan 2009) | 1 line
add email addresses
........
r68552 | vinay.sajip | 2009-01-12 14:36:18 -0600 (Mon, 12 Jan 2009) | 1 line
Minor changes/corrections in markup.
........
r68563 | benjamin.peterson | 2009-01-12 19:49:10 -0600 (Mon, 12 Jan 2009) | 1 line
small logic correction
........
r68570 | raymond.hettinger | 2009-01-13 03:08:32 -0600 (Tue, 13 Jan 2009) | 5 lines
Issue 4922: Incorrect comments for MutableSet.add() and MutableSet.discard().
Needs to be backported to 2.6 and forward ported to 3.0 and 3.1.
........
r68571 | armin.ronacher | 2009-01-13 05:52:23 -0600 (Tue, 13 Jan 2009) | 3 lines
ast.literal_eval can properly evaluate complex numbers now. This fixes issue4907.
........
r68572 | andrew.kuchling | 2009-01-13 07:40:54 -0600 (Tue, 13 Jan 2009) | 1 line
Note that first coord. is left alone
........
r68575 | thomas.heller | 2009-01-13 11:32:28 -0600 (Tue, 13 Jan 2009) | 1 line
Fix refcount leak in error cases. Bug found by coverity.
........
r68582 | georg.brandl | 2009-01-13 16:14:01 -0600 (Tue, 13 Jan 2009) | 2 lines
Use assertRaises.
........
r68596 | amaury.forgeotdarc | 2009-01-13 17:39:22 -0600 (Tue, 13 Jan 2009) | 3 lines
#1162154: inspect.getmembers() now skips attributes that raise AttributeError,
e.g. a __slots__ attribute which has not been set.
........
r68623 | vinay.sajip | 2009-01-15 16:48:13 -0600 (Thu, 15 Jan 2009) | 1 line
Made minor changes/corrections in markup. Added a couple of section headings.
........
r68624 | vinay.sajip | 2009-01-15 17:04:47 -0600 (Thu, 15 Jan 2009) | 1 line
Minor changes/corrections in markup.
........
r68628 | benjamin.peterson | 2009-01-15 20:55:24 -0600 (Thu, 15 Jan 2009) | 1 line
compare with == not is #4946
........
2009-01-15 23:54:08 -04:00
|
|
|
|
.. function:: crc32(data[, value])
|
2007-08-15 11:28:22 -03:00
|
|
|
|
|
|
|
|
|
.. index::
|
|
|
|
|
single: Cyclic Redundancy Check
|
|
|
|
|
single: checksum; Cyclic Redundancy Check
|
|
|
|
|
|
2015-12-11 01:19:29 -04:00
|
|
|
|
Computes a CRC (Cyclic Redundancy Check) checksum of *data*. The
|
|
|
|
|
result is an unsigned 32-bit integer. If *value* is present, it is used
|
|
|
|
|
as the starting value of the checksum; otherwise, a default value of 0
|
|
|
|
|
is used. Passing in *value* allows computing a running checksum over the
|
Merged revisions 68450,68480-68481,68493,68495,68501,68512,68514-68515,68534-68536,68552,68563,68570-68572,68575,68582,68596,68623-68624,68628 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk
........
r68450 | jeffrey.yasskin | 2009-01-09 10:47:07 -0600 (Fri, 09 Jan 2009) | 3 lines
Fix issue 4884, preventing a crash in the socket code when python is compiled
with llvm-gcc and run with a glibc <2.10.
........
r68480 | vinay.sajip | 2009-01-10 07:38:04 -0600 (Sat, 10 Jan 2009) | 1 line
Minor documentation changes cross-referencing NullHandler to the documentation on configuring logging in a library.
........
r68481 | vinay.sajip | 2009-01-10 07:42:04 -0600 (Sat, 10 Jan 2009) | 1 line
Corrected an incorrect self-reference.
........
r68493 | benjamin.peterson | 2009-01-10 11:18:55 -0600 (Sat, 10 Jan 2009) | 1 line
rewrite verbose conditionals
........
r68495 | benjamin.peterson | 2009-01-10 11:36:44 -0600 (Sat, 10 Jan 2009) | 1 line
tp_iter only exists with Py_TPFLAGS_HAVE_ITER #4901
........
r68501 | vinay.sajip | 2009-01-10 13:22:57 -0600 (Sat, 10 Jan 2009) | 1 line
Corrected minor typo and added .currentmodule directives to fix missing cross-references.
........
r68512 | benjamin.peterson | 2009-01-10 16:42:10 -0600 (Sat, 10 Jan 2009) | 1 line
make tests fail if they can't be imported
........
r68514 | benjamin.peterson | 2009-01-10 17:41:59 -0600 (Sat, 10 Jan 2009) | 1 line
move seealso to a more appropiate place
........
r68515 | benjamin.peterson | 2009-01-10 17:49:08 -0600 (Sat, 10 Jan 2009) | 1 line
macos 9 isn't supported
........
r68534 | gregory.p.smith | 2009-01-11 11:53:33 -0600 (Sun, 11 Jan 2009) | 2 lines
correct email address
........
r68535 | gregory.p.smith | 2009-01-11 11:57:54 -0600 (Sun, 11 Jan 2009) | 9 lines
Update the documentation for binascii and zlib crc32/adler32 functions
to better describe the signed vs unsigned return value behavior on
different platforms and versions of python. Mention the workaround to
make them all return the same thing by using & 0xffffffff.
Fixes issue4903.
Also needs to be merged into release26-maint, release30-maint, & py3k.
........
r68536 | benjamin.peterson | 2009-01-11 13:48:15 -0600 (Sun, 11 Jan 2009) | 1 line
add email addresses
........
r68552 | vinay.sajip | 2009-01-12 14:36:18 -0600 (Mon, 12 Jan 2009) | 1 line
Minor changes/corrections in markup.
........
r68563 | benjamin.peterson | 2009-01-12 19:49:10 -0600 (Mon, 12 Jan 2009) | 1 line
small logic correction
........
r68570 | raymond.hettinger | 2009-01-13 03:08:32 -0600 (Tue, 13 Jan 2009) | 5 lines
Issue 4922: Incorrect comments for MutableSet.add() and MutableSet.discard().
Needs to be backported to 2.6 and forward ported to 3.0 and 3.1.
........
r68571 | armin.ronacher | 2009-01-13 05:52:23 -0600 (Tue, 13 Jan 2009) | 3 lines
ast.literal_eval can properly evaluate complex numbers now. This fixes issue4907.
........
r68572 | andrew.kuchling | 2009-01-13 07:40:54 -0600 (Tue, 13 Jan 2009) | 1 line
Note that first coord. is left alone
........
r68575 | thomas.heller | 2009-01-13 11:32:28 -0600 (Tue, 13 Jan 2009) | 1 line
Fix refcount leak in error cases. Bug found by coverity.
........
r68582 | georg.brandl | 2009-01-13 16:14:01 -0600 (Tue, 13 Jan 2009) | 2 lines
Use assertRaises.
........
r68596 | amaury.forgeotdarc | 2009-01-13 17:39:22 -0600 (Tue, 13 Jan 2009) | 3 lines
#1162154: inspect.getmembers() now skips attributes that raise AttributeError,
e.g. a __slots__ attribute which has not been set.
........
r68623 | vinay.sajip | 2009-01-15 16:48:13 -0600 (Thu, 15 Jan 2009) | 1 line
Made minor changes/corrections in markup. Added a couple of section headings.
........
r68624 | vinay.sajip | 2009-01-15 17:04:47 -0600 (Thu, 15 Jan 2009) | 1 line
Minor changes/corrections in markup.
........
r68628 | benjamin.peterson | 2009-01-15 20:55:24 -0600 (Thu, 15 Jan 2009) | 1 line
compare with == not is #4946
........
2009-01-15 23:54:08 -04:00
|
|
|
|
concatenation of several inputs. The algorithm is not cryptographically
|
2007-08-15 11:28:22 -03:00
|
|
|
|
strong, and should not be used for authentication or digital signatures. Since
|
|
|
|
|
the algorithm is designed for use as a checksum algorithm, it is not suitable
|
|
|
|
|
for use as a general hash algorithm.
|
|
|
|
|
|
2015-12-11 01:19:29 -04:00
|
|
|
|
.. versionchanged:: 3.0
|
|
|
|
|
Always returns an unsigned value.
|
2012-06-26 03:51:17 -03:00
|
|
|
|
To generate the same numeric value across all Python versions and
|
2015-12-11 01:19:29 -04:00
|
|
|
|
platforms, use ``crc32(data) & 0xffffffff``.
|
Merged revisions 68450,68480-68481,68493,68495,68501,68512,68514-68515,68534-68536,68552,68563,68570-68572,68575,68582,68596,68623-68624,68628 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk
........
r68450 | jeffrey.yasskin | 2009-01-09 10:47:07 -0600 (Fri, 09 Jan 2009) | 3 lines
Fix issue 4884, preventing a crash in the socket code when python is compiled
with llvm-gcc and run with a glibc <2.10.
........
r68480 | vinay.sajip | 2009-01-10 07:38:04 -0600 (Sat, 10 Jan 2009) | 1 line
Minor documentation changes cross-referencing NullHandler to the documentation on configuring logging in a library.
........
r68481 | vinay.sajip | 2009-01-10 07:42:04 -0600 (Sat, 10 Jan 2009) | 1 line
Corrected an incorrect self-reference.
........
r68493 | benjamin.peterson | 2009-01-10 11:18:55 -0600 (Sat, 10 Jan 2009) | 1 line
rewrite verbose conditionals
........
r68495 | benjamin.peterson | 2009-01-10 11:36:44 -0600 (Sat, 10 Jan 2009) | 1 line
tp_iter only exists with Py_TPFLAGS_HAVE_ITER #4901
........
r68501 | vinay.sajip | 2009-01-10 13:22:57 -0600 (Sat, 10 Jan 2009) | 1 line
Corrected minor typo and added .currentmodule directives to fix missing cross-references.
........
r68512 | benjamin.peterson | 2009-01-10 16:42:10 -0600 (Sat, 10 Jan 2009) | 1 line
make tests fail if they can't be imported
........
r68514 | benjamin.peterson | 2009-01-10 17:41:59 -0600 (Sat, 10 Jan 2009) | 1 line
move seealso to a more appropiate place
........
r68515 | benjamin.peterson | 2009-01-10 17:49:08 -0600 (Sat, 10 Jan 2009) | 1 line
macos 9 isn't supported
........
r68534 | gregory.p.smith | 2009-01-11 11:53:33 -0600 (Sun, 11 Jan 2009) | 2 lines
correct email address
........
r68535 | gregory.p.smith | 2009-01-11 11:57:54 -0600 (Sun, 11 Jan 2009) | 9 lines
Update the documentation for binascii and zlib crc32/adler32 functions
to better describe the signed vs unsigned return value behavior on
different platforms and versions of python. Mention the workaround to
make them all return the same thing by using & 0xffffffff.
Fixes issue4903.
Also needs to be merged into release26-maint, release30-maint, & py3k.
........
r68536 | benjamin.peterson | 2009-01-11 13:48:15 -0600 (Sun, 11 Jan 2009) | 1 line
add email addresses
........
r68552 | vinay.sajip | 2009-01-12 14:36:18 -0600 (Mon, 12 Jan 2009) | 1 line
Minor changes/corrections in markup.
........
r68563 | benjamin.peterson | 2009-01-12 19:49:10 -0600 (Mon, 12 Jan 2009) | 1 line
small logic correction
........
r68570 | raymond.hettinger | 2009-01-13 03:08:32 -0600 (Tue, 13 Jan 2009) | 5 lines
Issue 4922: Incorrect comments for MutableSet.add() and MutableSet.discard().
Needs to be backported to 2.6 and forward ported to 3.0 and 3.1.
........
r68571 | armin.ronacher | 2009-01-13 05:52:23 -0600 (Tue, 13 Jan 2009) | 3 lines
ast.literal_eval can properly evaluate complex numbers now. This fixes issue4907.
........
r68572 | andrew.kuchling | 2009-01-13 07:40:54 -0600 (Tue, 13 Jan 2009) | 1 line
Note that first coord. is left alone
........
r68575 | thomas.heller | 2009-01-13 11:32:28 -0600 (Tue, 13 Jan 2009) | 1 line
Fix refcount leak in error cases. Bug found by coverity.
........
r68582 | georg.brandl | 2009-01-13 16:14:01 -0600 (Tue, 13 Jan 2009) | 2 lines
Use assertRaises.
........
r68596 | amaury.forgeotdarc | 2009-01-13 17:39:22 -0600 (Tue, 13 Jan 2009) | 3 lines
#1162154: inspect.getmembers() now skips attributes that raise AttributeError,
e.g. a __slots__ attribute which has not been set.
........
r68623 | vinay.sajip | 2009-01-15 16:48:13 -0600 (Thu, 15 Jan 2009) | 1 line
Made minor changes/corrections in markup. Added a couple of section headings.
........
r68624 | vinay.sajip | 2009-01-15 17:04:47 -0600 (Thu, 15 Jan 2009) | 1 line
Minor changes/corrections in markup.
........
r68628 | benjamin.peterson | 2009-01-15 20:55:24 -0600 (Thu, 15 Jan 2009) | 1 line
compare with == not is #4946
........
2009-01-15 23:54:08 -04:00
|
|
|
|
|
2007-08-15 11:28:22 -03:00
|
|
|
|
|
2019-06-05 17:24:28 -03:00
|
|
|
|
.. function:: decompress(data, /, wbits=MAX_WBITS, bufsize=DEF_BUF_SIZE)
|
2007-08-15 11:28:22 -03:00
|
|
|
|
|
2011-01-08 17:04:25 -04:00
|
|
|
|
Decompresses the bytes in *data*, returning a bytes object containing the
|
2016-05-27 04:32:11 -03:00
|
|
|
|
uncompressed data. The *wbits* parameter depends on
|
|
|
|
|
the format of *data*, and is discussed further below.
|
Merged revisions 78338,78345-78346,78561-78562,78566,78574,78581,78634,78660,78675 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk
........
r78338 | andrew.kuchling | 2010-02-22 15:04:02 -0600 (Mon, 22 Feb 2010) | 4 lines
Remove Tools/modulator, a reference to it in the docs, and a screenshot of it.
(I asked the BDFL first, and he approved removing it. The last actual bugfix
to Tools/modulator was in 2001; since then all changes have been search-and-replace:
string methods, whitespace fixes, etc.)
........
r78345 | andrew.kuchling | 2010-02-22 17:10:52 -0600 (Mon, 22 Feb 2010) | 1 line
#7706: DONT_HAVE_ERRNO_H is no longer defined by configure (after rev.46819).
........
r78346 | andrew.kuchling | 2010-02-22 17:12:00 -0600 (Mon, 22 Feb 2010) | 1 line
#7706: add include guards where they're missing; required for Windows CE
........
r78561 | andrew.kuchling | 2010-03-01 13:51:43 -0600 (Mon, 01 Mar 2010) | 1 line
#7191: describe more details of wbits parameter
........
r78562 | andrew.kuchling | 2010-03-01 14:11:57 -0600 (Mon, 01 Mar 2010) | 1 line
#7637: avoid repeated-concatenation antipattern in example
........
r78566 | barry.warsaw | 2010-03-01 15:46:51 -0600 (Mon, 01 Mar 2010) | 4 lines
Manually copy patch for bug 7250 from the release26-maint branch. I suck
because I did this in the wrong order and couldn't smack svnmerge into
submission.
........
r78574 | benjamin.peterson | 2010-03-01 17:25:13 -0600 (Mon, 01 Mar 2010) | 1 line
remove CVS id
........
r78581 | michael.foord | 2010-03-02 08:22:15 -0600 (Tue, 02 Mar 2010) | 1 line
Link correction in documentation.
........
r78634 | benjamin.peterson | 2010-03-03 15:28:25 -0600 (Wed, 03 Mar 2010) | 1 line
rephrase
........
r78660 | dirkjan.ochtman | 2010-03-04 13:21:53 -0600 (Thu, 04 Mar 2010) | 4 lines
Try to fix buildbot breakage from r78384.
Thanks bitdancer and briancurtin for the help.
........
r78675 | florent.xicluna | 2010-03-04 19:12:14 -0600 (Thu, 04 Mar 2010) | 2 lines
These line should not be there.
........
2010-03-21 19:36:19 -03:00
|
|
|
|
If *bufsize* is given, it is used as the initial size of the output
|
2007-08-15 11:28:22 -03:00
|
|
|
|
buffer. Raises the :exc:`error` exception if any error occurs.
|
|
|
|
|
|
2016-05-27 04:32:11 -03:00
|
|
|
|
.. _decompress-wbits:
|
|
|
|
|
|
|
|
|
|
The *wbits* parameter controls the size of the history buffer
|
|
|
|
|
(or "window size"), and what header and trailer format is expected.
|
|
|
|
|
It is similar to the parameter for :func:`compressobj`, but accepts
|
|
|
|
|
more ranges of values:
|
|
|
|
|
|
|
|
|
|
* +8 to +15: The base-two logarithm of the window size. The input
|
|
|
|
|
must include a zlib header and trailer.
|
|
|
|
|
|
|
|
|
|
* 0: Automatically determine the window size from the zlib header.
|
2016-05-27 08:20:21 -03:00
|
|
|
|
Only supported since zlib 1.2.3.5.
|
2016-05-27 04:32:11 -03:00
|
|
|
|
|
|
|
|
|
* −8 to −15: Uses the absolute value of *wbits* as the window size
|
|
|
|
|
logarithm. The input must be a raw stream with no header or trailer.
|
|
|
|
|
|
|
|
|
|
* +24 to +31 = 16 + (8 to 15): Uses the low 4 bits of the value as
|
|
|
|
|
the window size logarithm. The input must include a gzip header and
|
|
|
|
|
trailer.
|
|
|
|
|
|
|
|
|
|
* +40 to +47 = 32 + (8 to 15): Uses the low 4 bits of the value as
|
|
|
|
|
the window size logarithm, and automatically accepts either
|
|
|
|
|
the zlib or gzip format.
|
|
|
|
|
|
|
|
|
|
When decompressing a stream, the window size must not be smaller
|
Merged revisions 78338,78345-78346,78561-78562,78566,78574,78581,78634,78660,78675 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk
........
r78338 | andrew.kuchling | 2010-02-22 15:04:02 -0600 (Mon, 22 Feb 2010) | 4 lines
Remove Tools/modulator, a reference to it in the docs, and a screenshot of it.
(I asked the BDFL first, and he approved removing it. The last actual bugfix
to Tools/modulator was in 2001; since then all changes have been search-and-replace:
string methods, whitespace fixes, etc.)
........
r78345 | andrew.kuchling | 2010-02-22 17:10:52 -0600 (Mon, 22 Feb 2010) | 1 line
#7706: DONT_HAVE_ERRNO_H is no longer defined by configure (after rev.46819).
........
r78346 | andrew.kuchling | 2010-02-22 17:12:00 -0600 (Mon, 22 Feb 2010) | 1 line
#7706: add include guards where they're missing; required for Windows CE
........
r78561 | andrew.kuchling | 2010-03-01 13:51:43 -0600 (Mon, 01 Mar 2010) | 1 line
#7191: describe more details of wbits parameter
........
r78562 | andrew.kuchling | 2010-03-01 14:11:57 -0600 (Mon, 01 Mar 2010) | 1 line
#7637: avoid repeated-concatenation antipattern in example
........
r78566 | barry.warsaw | 2010-03-01 15:46:51 -0600 (Mon, 01 Mar 2010) | 4 lines
Manually copy patch for bug 7250 from the release26-maint branch. I suck
because I did this in the wrong order and couldn't smack svnmerge into
submission.
........
r78574 | benjamin.peterson | 2010-03-01 17:25:13 -0600 (Mon, 01 Mar 2010) | 1 line
remove CVS id
........
r78581 | michael.foord | 2010-03-02 08:22:15 -0600 (Tue, 02 Mar 2010) | 1 line
Link correction in documentation.
........
r78634 | benjamin.peterson | 2010-03-03 15:28:25 -0600 (Wed, 03 Mar 2010) | 1 line
rephrase
........
r78660 | dirkjan.ochtman | 2010-03-04 13:21:53 -0600 (Thu, 04 Mar 2010) | 4 lines
Try to fix buildbot breakage from r78384.
Thanks bitdancer and briancurtin for the help.
........
r78675 | florent.xicluna | 2010-03-04 19:12:14 -0600 (Thu, 04 Mar 2010) | 2 lines
These line should not be there.
........
2010-03-21 19:36:19 -03:00
|
|
|
|
than the size originally used to compress the stream; using a too-small
|
2016-05-27 04:32:11 -03:00
|
|
|
|
value may result in an :exc:`error` exception. The default *wbits* value
|
2016-08-15 04:06:16 -03:00
|
|
|
|
corresponds to the largest window size and requires a zlib header and
|
|
|
|
|
trailer to be included.
|
2007-08-15 11:28:22 -03:00
|
|
|
|
|
|
|
|
|
*bufsize* is the initial size of the buffer used to hold decompressed data. If
|
|
|
|
|
more space is required, the buffer size will be increased as needed, so you
|
|
|
|
|
don't have to get this value exactly right; tuning it will only save a few calls
|
2016-08-15 04:06:16 -03:00
|
|
|
|
to :c:func:`malloc`.
|
2007-08-15 11:28:22 -03:00
|
|
|
|
|
2016-08-15 04:06:16 -03:00
|
|
|
|
.. versionchanged:: 3.6
|
|
|
|
|
*wbits* and *bufsize* can be used as keyword arguments.
|
2007-08-15 11:28:22 -03:00
|
|
|
|
|
2018-03-07 01:05:37 -04:00
|
|
|
|
.. function:: decompressobj(wbits=MAX_WBITS[, zdict])
|
2007-08-15 11:28:22 -03:00
|
|
|
|
|
|
|
|
|
Returns a decompression object, to be used for decompressing data streams that
|
2012-06-20 21:13:12 -03:00
|
|
|
|
won't fit into memory at once.
|
|
|
|
|
|
2016-05-27 04:32:11 -03:00
|
|
|
|
The *wbits* parameter controls the size of the history buffer (or the
|
|
|
|
|
"window size"), and what header and trailer format is expected. It has
|
|
|
|
|
the same meaning as `described for decompress() <#decompress-wbits>`__.
|
2012-06-20 21:13:12 -03:00
|
|
|
|
|
|
|
|
|
The *zdict* parameter specifies a predefined compression dictionary. If
|
|
|
|
|
provided, this must be the same dictionary as was used by the compressor that
|
|
|
|
|
produced the data that is to be decompressed.
|
|
|
|
|
|
2012-06-26 03:51:17 -03:00
|
|
|
|
.. note::
|
|
|
|
|
|
|
|
|
|
If *zdict* is a mutable object (such as a :class:`bytearray`), you must not
|
|
|
|
|
modify its contents between the call to :func:`decompressobj` and the first
|
|
|
|
|
call to the decompressor's ``decompress()`` method.
|
|
|
|
|
|
|
|
|
|
.. versionchanged:: 3.3
|
|
|
|
|
Added the *zdict* parameter.
|
2007-08-15 11:28:22 -03:00
|
|
|
|
|
2011-09-11 19:04:13 -03:00
|
|
|
|
|
2007-08-15 11:28:22 -03:00
|
|
|
|
Compression objects support the following methods:
|
|
|
|
|
|
|
|
|
|
|
2011-01-08 17:04:25 -04:00
|
|
|
|
.. method:: Compress.compress(data)
|
2007-08-15 11:28:22 -03:00
|
|
|
|
|
2011-01-08 17:04:25 -04:00
|
|
|
|
Compress *data*, returning a bytes object containing compressed data for at least
|
|
|
|
|
part of the data in *data*. This data should be concatenated to the output
|
2007-08-15 11:28:22 -03:00
|
|
|
|
produced by any preceding calls to the :meth:`compress` method. Some input may
|
|
|
|
|
be kept in internal buffers for later processing.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
.. method:: Compress.flush([mode])
|
|
|
|
|
|
2011-01-08 17:04:25 -04:00
|
|
|
|
All pending input is processed, and a bytes object containing the remaining compressed
|
2007-08-15 11:28:22 -03:00
|
|
|
|
output is returned. *mode* can be selected from the constants
|
2018-03-07 01:05:37 -04:00
|
|
|
|
:const:`Z_NO_FLUSH`, :const:`Z_PARTIAL_FLUSH`, :const:`Z_SYNC_FLUSH`,
|
|
|
|
|
:const:`Z_FULL_FLUSH`, :const:`Z_BLOCK` (zlib 1.2.3.4), or :const:`Z_FINISH`,
|
|
|
|
|
defaulting to :const:`Z_FINISH`. Except :const:`Z_FINISH`, all constants
|
|
|
|
|
allow compressing further bytestrings of data, while :const:`Z_FINISH` finishes the
|
|
|
|
|
compressed stream and prevents compressing any more data. After calling :meth:`flush`
|
|
|
|
|
with *mode* set to :const:`Z_FINISH`, the :meth:`compress` method cannot be called again;
|
|
|
|
|
the only realistic action is to delete the object.
|
2007-08-15 11:28:22 -03:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
.. method:: Compress.copy()
|
|
|
|
|
|
|
|
|
|
Returns a copy of the compression object. This can be used to efficiently
|
|
|
|
|
compress a set of data that share a common initial prefix.
|
|
|
|
|
|
|
|
|
|
|
2018-06-27 15:04:51 -03:00
|
|
|
|
.. versionchanged:: 3.8
|
|
|
|
|
Added :func:`copy.copy` and :func:`copy.deepcopy` support to compression
|
|
|
|
|
objects.
|
|
|
|
|
|
|
|
|
|
|
2011-08-13 10:22:40 -03:00
|
|
|
|
Decompression objects support the following methods and attributes:
|
2007-08-15 11:28:22 -03:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
.. attribute:: Decompress.unused_data
|
|
|
|
|
|
2011-01-08 17:04:25 -04:00
|
|
|
|
A bytes object which contains any bytes past the end of the compressed data. That is,
|
2014-02-06 15:10:41 -04:00
|
|
|
|
this remains ``b""`` until the last byte that contains compression data is
|
2011-01-08 17:04:25 -04:00
|
|
|
|
available. If the whole bytestring turned out to contain compressed data, this is
|
|
|
|
|
``b""``, an empty bytes object.
|
2007-08-15 11:28:22 -03:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
.. attribute:: Decompress.unconsumed_tail
|
|
|
|
|
|
2011-01-08 17:04:25 -04:00
|
|
|
|
A bytes object that contains any data that was not consumed by the last
|
2007-08-15 11:28:22 -03:00
|
|
|
|
:meth:`decompress` call because it exceeded the limit for the uncompressed data
|
|
|
|
|
buffer. This data has not yet been seen by the zlib machinery, so you must feed
|
|
|
|
|
it (possibly with further data concatenated to it) back to a subsequent
|
|
|
|
|
:meth:`decompress` method call in order to get correct output.
|
|
|
|
|
|
|
|
|
|
|
2011-08-13 10:22:40 -03:00
|
|
|
|
.. attribute:: Decompress.eof
|
|
|
|
|
|
|
|
|
|
A boolean indicating whether the end of the compressed data stream has been
|
|
|
|
|
reached.
|
|
|
|
|
|
|
|
|
|
This makes it possible to distinguish between a properly-formed compressed
|
|
|
|
|
stream, and an incomplete or truncated one.
|
|
|
|
|
|
|
|
|
|
.. versionadded:: 3.3
|
|
|
|
|
|
|
|
|
|
|
2016-08-15 04:06:16 -03:00
|
|
|
|
.. method:: Decompress.decompress(data, max_length=0)
|
2007-08-15 11:28:22 -03:00
|
|
|
|
|
2011-01-08 17:04:25 -04:00
|
|
|
|
Decompress *data*, returning a bytes object containing the uncompressed data
|
2007-08-15 11:28:22 -03:00
|
|
|
|
corresponding to at least part of the data in *string*. This data should be
|
|
|
|
|
concatenated to the output produced by any preceding calls to the
|
|
|
|
|
:meth:`decompress` method. Some of the input data may be preserved in internal
|
|
|
|
|
buffers for later processing.
|
|
|
|
|
|
2015-11-17 20:59:17 -04:00
|
|
|
|
If the optional parameter *max_length* is non-zero then the return value will be
|
2007-08-15 11:28:22 -03:00
|
|
|
|
no longer than *max_length*. This may mean that not all of the compressed input
|
|
|
|
|
can be processed; and unconsumed data will be stored in the attribute
|
2011-01-08 17:04:25 -04:00
|
|
|
|
:attr:`unconsumed_tail`. This bytestring must be passed to a subsequent call to
|
2016-08-15 04:06:16 -03:00
|
|
|
|
:meth:`decompress` if decompression is to continue. If *max_length* is zero
|
|
|
|
|
then the whole input is decompressed, and :attr:`unconsumed_tail` is empty.
|
|
|
|
|
|
|
|
|
|
.. versionchanged:: 3.6
|
|
|
|
|
*max_length* can be used as a keyword argument.
|
2007-08-15 11:28:22 -03:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
.. method:: Decompress.flush([length])
|
|
|
|
|
|
2011-01-08 17:04:25 -04:00
|
|
|
|
All pending input is processed, and a bytes object containing the remaining
|
2007-08-15 11:28:22 -03:00
|
|
|
|
uncompressed output is returned. After calling :meth:`flush`, the
|
|
|
|
|
:meth:`decompress` method cannot be called again; the only realistic action is
|
|
|
|
|
to delete the object.
|
|
|
|
|
|
|
|
|
|
The optional parameter *length* sets the initial size of the output buffer.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
.. method:: Decompress.copy()
|
|
|
|
|
|
|
|
|
|
Returns a copy of the decompression object. This can be used to save the state
|
|
|
|
|
of the decompressor midway through the data stream in order to speed up random
|
|
|
|
|
seeks into the stream at a future point.
|
|
|
|
|
|
|
|
|
|
|
2018-06-27 15:04:51 -03:00
|
|
|
|
.. versionchanged:: 3.8
|
|
|
|
|
Added :func:`copy.copy` and :func:`copy.deepcopy` support to decompression
|
|
|
|
|
objects.
|
|
|
|
|
|
|
|
|
|
|
2011-09-11 19:04:13 -03:00
|
|
|
|
Information about the version of the zlib library in use is available through
|
|
|
|
|
the following constants:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
.. data:: ZLIB_VERSION
|
|
|
|
|
|
|
|
|
|
The version string of the zlib library that was used for building the module.
|
|
|
|
|
This may be different from the zlib library actually used at runtime, which
|
|
|
|
|
is available as :const:`ZLIB_RUNTIME_VERSION`.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
.. data:: ZLIB_RUNTIME_VERSION
|
|
|
|
|
|
|
|
|
|
The version string of the zlib library actually loaded by the interpreter.
|
|
|
|
|
|
|
|
|
|
.. versionadded:: 3.3
|
|
|
|
|
|
|
|
|
|
|
2007-08-15 11:28:22 -03:00
|
|
|
|
.. seealso::
|
|
|
|
|
|
|
|
|
|
Module :mod:`gzip`
|
|
|
|
|
Reading and writing :program:`gzip`\ -format files.
|
|
|
|
|
|
|
|
|
|
http://www.zlib.net
|
|
|
|
|
The zlib library home page.
|
|
|
|
|
|
|
|
|
|
http://www.zlib.net/manual.html
|
|
|
|
|
The zlib manual explains the semantics and usage of the library's many
|
|
|
|
|
functions.
|