[Python-Dev] LZMA compression support in 3.3

"Martin v. Löwis" martin at v.loewis.de
Sat Aug 27 17:15:09 CEST 2011


> As for file formats, these are handled by liblzma itself; the extension module
> just selects which compressor/decompressor initializer function to use depending
> on the value of the "format" argument. Our code won't contain anything along the
> lines of GzipFile; all of that work is done by the underlying C library. Rather,
> the LZMAFile class will be like BZ2File - just a simple filter that passes the
> read/written data through a LZMACompressor or LZMADecompressor as appropriate.

This is exactly what I worry about. I think adding file I/O to bz2 was a
mistake, as this doesn't integrate with Python's IO library (it used
to, but now after dropping stdio, they were incompatible. Indeed, for
Python 3.2, BZ2File has been removed from the C module, and lifted to
Python.

IOW, the _lzma C module must not do any I/O, neither directly nor
indirectly (through liblzma). The approach of gzip.py (doing IO
and file formats in pure Python) is exactly right.

Regards,
Martin


More information about the Python-Dev mailing list