From 5433b1a1e408013d7ceadfb2fa639f5a65a81b74 Mon Sep 17 00:00:00 2001 From: Marian Beermann Date: Sun, 31 Jul 2016 22:00:58 +0200 Subject: [PATCH] Add Compressor.detect(data) -> CompressBase impl --- src/borg/compress.pyx | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/borg/compress.pyx b/src/borg/compress.pyx index f0dd0b1b3..6c42493f5 100644 --- a/src/borg/compress.pyx +++ b/src/borg/compress.pyx @@ -194,9 +194,14 @@ class Compressor: return self.compressor.compress(data) def decompress(self, data): + compressor_cls = self.detect(data) + return compressor_cls(**self.params).decompress(data) + + @staticmethod + def detect(data): hdr = bytes(data[:2]) # detect() does not work with memoryview for cls in COMPRESSOR_LIST: if cls.detect(hdr): - return cls(**self.params).decompress(data) + return cls else: raise ValueError('No decompressor for this data found: %r.', data[:2])