lzma.py 511 B

1234567891011121314151617181920
  1. import lzma
  2. from ..exceptions import CompressorError
  3. from .base import BaseCompressor
  4. class LzmaCompressor(BaseCompressor):
  5. min_length = 100
  6. preset = 4
  7. def compress(self, value: bytes) -> bytes:
  8. if len(value) > self.min_length:
  9. return lzma.compress(value, preset=self.preset)
  10. return value
  11. def decompress(self, value: bytes) -> bytes:
  12. try:
  13. return lzma.decompress(value)
  14. except lzma.LZMAError as e:
  15. raise CompressorError(e)