diff options
author | Helmut Grohne <helmut@subdivi.de> | 2016-04-28 20:50:12 +0200 |
---|---|---|
committer | Helmut Grohne <helmut@subdivi.de> | 2016-04-28 20:50:12 +0200 |
commit | 9ad30297a535a8a8f9bdc945288b02d75a379cb6 (patch) | |
tree | adacaf54f0e8bce018c89677610fa76f8caeeee5 /importpkg.py | |
parent | a24b9125ae91cb26e56bac3752b6e38e1dbf264e (diff) | |
download | debian-dedup-9ad30297a535a8a8f9bdc945288b02d75a379cb6.tar.gz |
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.
Diffstat (limited to 'importpkg.py')
-rwxr-xr-x | importpkg.py | 13 |
1 files changed, 3 insertions, 10 deletions
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 |