Source code for pysparkling.fileio.codec.lzma

from __future__ import absolute_import


# lzma only available in Python >= 3.3
try:
    import lzma
except ImportError:
    lzma = None

from io import BytesIO
import logging

from .codec import Codec

log = logging.getLogger(__name__)


[docs]class Lzma(Codec): """Implementation of :class:`.Codec` for lzma compression. Needs Python >= 3.3. """ def __init__(self): if lzma is None: log.warning('LZMA codec not supported. It is only supported ' 'in Python>=3.3. Not compressing streams.') super(Lzma, self).__init__()
[docs] def compress(self, stream): if lzma is None: return Codec.compress(self, stream) return BytesIO(lzma.compress(stream.read()))
[docs] def decompress(self, stream): if lzma is None: return Codec.decompress(self, stream) return BytesIO(lzma.decompress(stream.read()))