From 9ad30297a535a8a8f9bdc945288b02d75a379cb6 Mon Sep 17 00:00:00 2001 From: Helmut Grohne Date: Thu, 28 Apr 2016 20:50:12 +0200 Subject: decouple a function decompress out of decompress_tar Building on the previous commit, add a decompress function that turns a compressed filelike into a decompressed filelike. Use it to decouple the decompression step. --- importpkg.py | 13 +++---------- 1 file changed, 3 insertions(+), 10 deletions(-) (limited to 'importpkg.py') diff --git a/importpkg.py b/importpkg.py index 01ec87a..dac4bb1 100755 --- a/importpkg.py +++ b/importpkg.py @@ -11,13 +11,12 @@ import sys import tarfile import zlib -import lzma import yaml from dedup.debpkg import DebExtractor, process_control, get_tar_hashes from dedup.hashing import DecompressedHash, SuppressingHash, HashedStream, \ HashBlacklistContent -from dedup.compression import GzipDecompressor, DecompressedStream +from dedup.compression import GzipDecompressor, decompress from dedup.image import GIFHash, PNGHash boring_content = set(("", "\n")) @@ -44,14 +43,8 @@ def gifhash(): return hashobj def decompress_tar(filelike, extension): - if extension in (b".lzma", b".xz"): - filelike = DecompressedStream(filelike, lzma.LZMADecompressor()) - extension = b"" - if extension not in (b"", b".gz", b".bz2"): - raise ValueError("unknown compression format with extension %r" % - extension) - return tarfile.open(fileobj=filelike, - mode="r|" + extension[1:].decode("ascii")) + filelike = decompress(filelike, extension.decode("ascii")) + return tarfile.open(fileobj=filelike, mode="r|") class ProcessingFinished(Exception): pass -- cgit v1.2.3