brotli.py 697 B

12345678910111213141516171819202122232425262728
  1. from __future__ import annotations
  2. __all__ = ["BrotliCompression"]
  3. import brotli
  4. from . import Compression
  5. class BrotliCompression(Compression):
  6. """Compression implementation using Brotli."""
  7. def __init__(self, quality: int = 3) -> None:
  8. """Creates a new BrotliCompression.
  9. Args:
  10. quality: Compression quality to use.
  11. """
  12. self._quality = quality
  13. def name(self) -> str:
  14. return "br"
  15. def compress(self, data: bytes | bytearray | memoryview) -> bytes:
  16. return brotli.compress(data, quality=self._quality)
  17. def decompress(self, data: bytes | bytearray | memoryview) -> bytes:
  18. return brotli.decompress(data)