| \section{\module{zlib} --- |
| Compression compatible with \program{gzip}} |
| |
| \declaremodule{builtin}{zlib} |
| \modulesynopsis{Low-level interface to compression and decompression |
| routines compatible with \program{gzip}.} |
| |
| |
| For applications that require data compression, the functions in this |
| module allow compression and decompression, using the zlib library. |
| The zlib library has its own home page at |
| \url{http://www.gzip.org/zlib/}. Version 1.1.3 is the |
| most recent version as of September 2000; use a later version if one |
| is available. There are known incompatibilities between the Python |
| module and earlier versions of the zlib library. |
| |
| The available exception and functions in this module are: |
| |
| \begin{excdesc}{error} |
| Exception raised on compression and decompression errors. |
| \end{excdesc} |
| |
| |
| \begin{funcdesc}{adler32}{string\optional{, value}} |
| 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. Since the algorithm is |
| designed for use as a checksum algorithm, it is not suitable for |
| use as a general hash algorithm. |
| \end{funcdesc} |
| |
| \begin{funcdesc}{compress}{string\optional{, level}} |
| 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. |
| \end{funcdesc} |
| |
| \begin{funcdesc}{compressobj}{\optional{level}} |
| Returns a compression object, to be used for compressing data streams |
| that won't fit into memory at once. \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}. |
| \end{funcdesc} |
| |
| \begin{funcdesc}{crc32}{string\optional{, value}} |
| Computes a CRC (Cyclic Redundancy Check)% |
| \index{Cyclic Redundancy Check} |
| \index{checksum!Cyclic Redundancy Check} |
| 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. Since |
| the algorithm is designed for use as a checksum algorithm, it is not |
| suitable for use as a general hash algorithm. |
| \end{funcdesc} |
| |
| \begin{funcdesc}{decompress}{string\optional{, wbits\optional{, bufsize}}} |
| Decompresses the data in \var{string}, returning a string containing |
| the uncompressed data. The \var{wbits} parameter controls the size of |
| the window buffer. If \var{bufsize} is given, it is used as the |
| initial size of the output buffer. Raises the \exception{error} |
| exception if any error occurs. |
| |
| 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. |
| |
| \end{funcdesc} |
| |
| \begin{funcdesc}{decompressobj}{\optional{wbits}} |
| Returns a decompression 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. |
| \end{funcdesc} |
| |
| Compression objects support the following methods: |
| |
| \begin{methoddesc}[Compress]{compress}{string} |
| 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 |
| \method{compress()} method. Some input may be kept in internal buffers |
| for later processing. |
| \end{methoddesc} |
| |
| \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 |
| \method{compress()} method cannot be called again; the only realistic |
| action is to delete the object. |
| \end{methoddesc} |
| |
| Decompression objects support the following methods, and two attributes: |
| |
| \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} |
| |
| \begin{memberdesc}{unconsumed_tail} |
| A string that contains any data that was not consumed by the last |
| \method{decompress} call because it exceeded the limit for the |
| uncompressed data buffer. |
| \end{memberdesc} |
| |
| \begin{methoddesc}[Decompress]{decompress}{string}{\optional{max_length}} |
| 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 |
| \method{decompress()} method. Some of the input data may be preserved |
| in internal buffers for later processing. |
| |
| If the optional parameter \var{max_length} is supplied then the return value |
| will be no longer than \var{max_length}. This may mean that not all of the |
| compressed input can be processed; and unconsumed data will be stored |
| in the attribute \member{unconsumed_tail}. This string must be passed |
| to a subsequent call to \method{decompress()} if decompression is to |
| continue. If \var{max_length} is not supplied then the whole input is |
| decompressed, and \member{unconsumed_tail} is an empty string. |
| \end{methoddesc} |
| |
| \begin{methoddesc}[Decompress]{flush}{} |
| All pending input is processed, and a string containing the remaining |
| uncompressed output is returned. After calling \method{flush()}, the |
| \method{decompress()} method cannot be called again; the only realistic |
| action is to delete the object. |
| \end{methoddesc} |
| |
| \begin{seealso} |
| \seemodule{gzip}{Reading and writing \program{gzip}-format files.} |
| \seeurl{http://www.gzip.org/zlib/}{The zlib library home page.} |
| \end{seealso} |