gzip.py 648 B

1234567891011121314151617181920212223242526
  1. from __future__ import annotations
  2. import gzip
  3. from . import Compression
  4. class GzipCompression(Compression):
  5. """Compression implementation using GZip."""
  6. def __init__(self, level: int = 6) -> None:
  7. """Creates a new GzipCompression.
  8. Args:
  9. level: Compression level to use.
  10. """
  11. self._level = level
  12. def name(self) -> str:
  13. return "gzip"
  14. def compress(self, data: bytes | bytearray | memoryview) -> bytes:
  15. return gzip.compress(data, compresslevel=self._level)
  16. def decompress(self, data: bytes | bytearray | memoryview) -> bytes:
  17. return gzip.decompress(data)