From a7a7cd476fddfe84de1467a96d8cfad5843db09b Mon Sep 17 00:00:00 2001 From: Helmut Grohne Date: Thu, 25 May 2023 22:53:27 +0200 Subject: support zstd as a decompressor --- dedup/compression.py | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'dedup/compression.py') diff --git a/dedup/compression.py b/dedup/compression.py index 2e9869c..742d7fd 100644 --- a/dedup/compression.py +++ b/dedup/compression.py @@ -5,6 +5,11 @@ import zlib import lzma +try: + import zstandard +except ImportError: + zstandard = None + class Decompressor(typing.Protocol): def copy(self) -> "Decompressor": @@ -196,6 +201,10 @@ decompressors = { '.xz': lzma.LZMADecompressor, } +if zstandard is not None: + decompressors[".zst"] = zstandard.ZstdDecompressor + + def decompress(filelike: typing.BinaryIO, extension: str) -> typing.BinaryIO: """Decompress a stream according to its extension. @param filelike: is a read-only byte-stream. It must support read(size) and -- cgit v1.2.3