1998-08-10 16:42:37 -03:00
|
|
|
\section{\module{zlib} ---
|
1999-04-21 15:44:41 -03:00
|
|
|
Compression compatible with \program{gzip}}
|
1998-07-23 14:59:49 -03:00
|
|
|
|
1999-02-19 20:14:17 -04:00
|
|
|
\declaremodule{builtin}{zlib}
|
1998-07-27 19:08:49 -03:00
|
|
|
\modulesynopsis{Low-level interface to compression and decompression
|
1999-04-21 15:44:41 -03:00
|
|
|
routines compatible with \program{gzip}.}
|
1998-07-23 14:59:49 -03:00
|
|
|
|
1997-04-30 15:12:27 -03:00
|
|
|
|
|
|
|
For applications that require data compression, the functions in this
|
1998-04-09 12:41:44 -03:00
|
|
|
module allow compression and decompression, using the zlib library.
|
|
|
|
The zlib library has its own home page at
|
1999-04-05 18:55:21 -03:00
|
|
|
\url{http://www.cdrom.com/pub/infozip/zlib/}. Version 1.1.3 is the
|
1999-04-21 15:44:41 -03:00
|
|
|
most recent version as of April 1999; use a later version if one
|
1999-04-05 18:55:21 -03:00
|
|
|
is available. There are known incompatibilities between the Python
|
|
|
|
module and earlier versions of the zlib library.
|
|
|
|
|
1998-04-03 02:49:26 -04:00
|
|
|
The available exception and functions in this module are:
|
|
|
|
|
|
|
|
\begin{excdesc}{error}
|
|
|
|
Exception raised on compression and decompression errors.
|
|
|
|
\end{excdesc}
|
1997-04-30 15:12:27 -03:00
|
|
|
|
|
|
|
|
1998-03-17 02:33:25 -04:00
|
|
|
\begin{funcdesc}{adler32}{string\optional{, value}}
|
1997-04-30 15:12:27 -03:00
|
|
|
Computes a Adler-32 checksum of \var{string}. (An Adler-32
|
|
|
|
checksum is almost as reliable as a CRC32 but can be computed much
|
|
|
|
more quickly.) If \var{value} is present, it is used as the
|
|
|
|
starting value of the checksum; otherwise, a fixed default value is
|
|
|
|
used. This allows computing a running checksum over the
|
|
|
|
concatenation of several input strings. The algorithm is not
|
|
|
|
cryptographically strong, and should not be used for
|
|
|
|
authentication or digital signatures.
|
|
|
|
\end{funcdesc}
|
|
|
|
|
1998-03-17 02:33:25 -04:00
|
|
|
\begin{funcdesc}{compress}{string\optional{, level}}
|
1998-06-19 18:18:28 -03:00
|
|
|
Compresses the data in \var{string}, returning a string contained
|
|
|
|
compressed data. \var{level} is an integer from \code{1} to
|
|
|
|
\code{9} controlling the level of compression; \code{1} is fastest
|
|
|
|
and produces the least compression, \code{9} is slowest and produces
|
|
|
|
the most. The default value is \code{6}. Raises the
|
|
|
|
\exception{error} exception if any error occurs.
|
1997-04-30 15:12:27 -03:00
|
|
|
\end{funcdesc}
|
|
|
|
|
|
|
|
\begin{funcdesc}{compressobj}{\optional{level}}
|
1998-01-22 12:11:18 -04:00
|
|
|
Returns a compression object, to be used for compressing data streams
|
1997-04-30 15:12:27 -03:00
|
|
|
that won't fit into memory at once. \var{level} is an integer from
|
1998-01-22 12:11:18 -04:00
|
|
|
\code{1} to \code{9} controlling the level of compression; \code{1} is
|
|
|
|
fastest and produces the least compression, \code{9} is slowest and
|
|
|
|
produces the most. The default value is \code{6}.
|
1997-04-30 15:12:27 -03:00
|
|
|
\end{funcdesc}
|
|
|
|
|
1998-03-17 02:33:25 -04:00
|
|
|
\begin{funcdesc}{crc32}{string\optional{, value}}
|
1998-04-03 02:49:26 -04:00
|
|
|
Computes a CRC (Cyclic Redundancy Check)%
|
|
|
|
\index{Cyclic Redundancy Check}
|
1998-04-04 02:28:54 -04:00
|
|
|
\index{checksum!Cyclic Redundancy Check}
|
1998-04-03 02:49:26 -04:00
|
|
|
checksum of \var{string}. If
|
|
|
|
\var{value} is present, it is used as the starting value of the
|
|
|
|
checksum; otherwise, a fixed default value is used. This allows
|
|
|
|
computing a running checksum over the concatenation of several
|
|
|
|
input strings. The algorithm is not cryptographically strong, and
|
|
|
|
should not be used for authentication or digital signatures.
|
1997-04-30 15:12:27 -03:00
|
|
|
\end{funcdesc}
|
|
|
|
|
2000-04-03 17:13:55 -03:00
|
|
|
\begin{funcdesc}{decompress}{string\optional{, wbits\optional{, bufsize}}}
|
1998-06-19 18:18:28 -03:00
|
|
|
Decompresses the data in \var{string}, returning a string containing
|
|
|
|
the uncompressed data. The \var{wbits} parameter controls the size of
|
2000-04-03 17:13:55 -03:00
|
|
|
the window buffer. If \var{bufsize} is given, it is used as the
|
1998-06-19 18:18:28 -03:00
|
|
|
initial size of the output buffer. Raises the \exception{error}
|
|
|
|
exception if any error occurs.
|
2000-04-03 17:13:55 -03:00
|
|
|
|
|
|
|
The absolute value of \var{wbits} is the base two logarithm of the
|
|
|
|
size of the history buffer (the ``window size'') used when compressing
|
|
|
|
data. Its absolute value should be between 8 and 15 for the most
|
|
|
|
recent versions of the zlib library, larger values resulting in better
|
|
|
|
compression at the expense of greater memory usage. The default value
|
|
|
|
is 15. When \var{wbits} is negative, the standard
|
|
|
|
\program{gzip} header is suppressed; this is an undocumented feature
|
|
|
|
of the zlib library, used for compatibility with \program{unzip}'s
|
|
|
|
compression file format.
|
|
|
|
|
|
|
|
\var{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 to \cfunction{malloc()}. The
|
|
|
|
default size is 16384.
|
|
|
|
|
1997-04-30 15:12:27 -03:00
|
|
|
\end{funcdesc}
|
|
|
|
|
|
|
|
\begin{funcdesc}{decompressobj}{\optional{wbits}}
|
1998-06-19 18:18:28 -03:00
|
|
|
Returns a compression object, to be used for decompressing data
|
|
|
|
streams that won't fit into memory at once. The \var{wbits}
|
|
|
|
parameter controls the size of the window buffer.
|
1997-04-30 15:12:27 -03:00
|
|
|
\end{funcdesc}
|
|
|
|
|
|
|
|
Compression objects support the following methods:
|
|
|
|
|
1998-04-03 02:49:26 -04:00
|
|
|
\begin{methoddesc}[Compress]{compress}{string}
|
1997-04-30 15:12:27 -03:00
|
|
|
Compress \var{string}, returning a string containing compressed data
|
|
|
|
for at least part of the data in \var{string}. This data should be
|
|
|
|
concatenated to the output produced by any preceding calls to the
|
1998-01-22 12:11:18 -04:00
|
|
|
\method{compress()} method. Some input may be kept in internal buffers
|
1997-04-30 15:12:27 -03:00
|
|
|
for later processing.
|
1998-04-03 02:49:26 -04:00
|
|
|
\end{methoddesc}
|
1997-04-30 15:12:27 -03:00
|
|
|
|
1998-12-31 17:14:23 -04:00
|
|
|
\begin{methoddesc}[Compress]{flush}{\optional{mode}}
|
|
|
|
All pending input is processed, and a string containing the remaining
|
|
|
|
compressed output is returned. \var{mode} can be selected from the
|
|
|
|
constants \constant{Z_SYNC_FLUSH}, \constant{Z_FULL_FLUSH}, or
|
|
|
|
\constant{Z_FINISH}, defaulting to \constant{Z_FINISH}. \constant{Z_SYNC_FLUSH} and
|
|
|
|
\constant{Z_FULL_FLUSH} allow compressing further strings of data and
|
|
|
|
are used to allow partial error recovery on decompression, while
|
|
|
|
\constant{Z_FINISH} finishes the compressed stream and
|
|
|
|
prevents compressing any more data. After calling
|
|
|
|
\method{flush()} with \var{mode} set to \constant{Z_FINISH}, the
|
1998-01-22 12:11:18 -04:00
|
|
|
\method{compress()} method cannot be called again; the only realistic
|
1998-12-31 17:14:23 -04:00
|
|
|
action is to delete the object.
|
1998-04-03 02:49:26 -04:00
|
|
|
\end{methoddesc}
|
1997-04-30 15:12:27 -03:00
|
|
|
|
2000-04-03 17:13:55 -03:00
|
|
|
Decompression objects support the following methods, and a single attribute:
|
|
|
|
|
|
|
|
\begin{memberdesc}{unused_data}
|
|
|
|
A string which contains any unused data from the last string fed to
|
|
|
|
this decompression object. If the whole string turned out to contain
|
|
|
|
compressed data, this is \code{""}, the empty string.
|
|
|
|
|
|
|
|
The only way to determine where a string of compressed data ends is by
|
|
|
|
actually decompressing it. This means that when compressed data is
|
|
|
|
contained part of a larger file, you can only find the end of it by
|
|
|
|
reading data and feeding it into a decompression object's
|
|
|
|
\method{decompress} method until the \member{unused_data} attribute is
|
|
|
|
no longer the empty string.
|
|
|
|
\end{memberdesc}
|
1997-04-30 15:12:27 -03:00
|
|
|
|
1998-04-03 02:49:26 -04:00
|
|
|
\begin{methoddesc}[Decompress]{decompress}{string}
|
1997-04-30 15:12:27 -03:00
|
|
|
Decompress \var{string}, returning a string containing the
|
|
|
|
uncompressed data corresponding to at least part of the data in
|
|
|
|
\var{string}. This data should be concatenated to the output produced
|
|
|
|
by any preceding calls to the
|
1998-01-22 12:11:18 -04:00
|
|
|
\method{decompress()} method. Some of the input data may be preserved
|
1997-04-30 16:39:21 -03:00
|
|
|
in internal buffers for later processing.
|
1998-04-03 02:49:26 -04:00
|
|
|
\end{methoddesc}
|
1997-04-30 15:12:27 -03:00
|
|
|
|
1998-04-03 02:49:26 -04:00
|
|
|
\begin{methoddesc}[Decompress]{flush}{}
|
1997-04-30 15:12:27 -03:00
|
|
|
All pending input is processed, and a string containing the remaining
|
1998-01-22 12:11:18 -04:00
|
|
|
uncompressed output is returned. After calling \method{flush()}, the
|
|
|
|
\method{decompress()} method cannot be called again; the only realistic
|
1997-04-30 15:12:27 -03:00
|
|
|
action is to delete the object.
|
1998-04-03 02:49:26 -04:00
|
|
|
\end{methoddesc}
|
1997-04-30 15:12:27 -03:00
|
|
|
|
1997-07-17 13:34:52 -03:00
|
|
|
\begin{seealso}
|
1999-04-21 15:44:41 -03:00
|
|
|
\seemodule{gzip}{reading and writing \program{gzip}-format files}
|
|
|
|
\seetext{The zlib library home page is located at
|
|
|
|
\url{http://www.cdrom.com/pub/infozip/zlib/}.}
|
1997-07-17 13:34:52 -03:00
|
|
|
\end{seealso}
|