summaryrefslogtreecommitdiff
path: root/importpkg.py
diff options
context:
space:
mode:
authorHelmut Grohne <helmut@subdivi.de>2016-04-28 20:50:12 +0200
committerHelmut Grohne <helmut@subdivi.de>2016-04-28 20:50:12 +0200
commit9ad30297a535a8a8f9bdc945288b02d75a379cb6 (patch)
treeadacaf54f0e8bce018c89677610fa76f8caeeee5 /importpkg.py
parenta24b9125ae91cb26e56bac3752b6e38e1dbf264e (diff)
downloaddebian-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-ximportpkg.py13
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