summaryrefslogtreecommitdiff
path: root/importpkg.py
diff options
context:
space:
mode:
Diffstat (limited to 'importpkg.py')
-rwxr-xr-ximportpkg.py13
1 files changed, 7 insertions, 6 deletions
diff --git a/importpkg.py b/importpkg.py
index 7e074e1..6dced21 100755
--- a/importpkg.py
+++ b/importpkg.py
@@ -45,13 +45,14 @@ def gifhash():
return hashobj
def decompress_tar(filelike, extension):
- if extension in (".lzma", ".xz"):
+ if extension in (b".lzma", b".xz"):
filelike = DecompressedStream(filelike, lzma.LZMADecompressor())
- extension = ""
- if extension not in ("", ".gz", ".bz2"):
+ 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:])
+ return tarfile.open(fileobj=filelike,
+ mode="r|" + extension[1:].decode("ascii"))
def process_package(filelike, hash_functions):
af = ArReader(filelike)
@@ -62,7 +63,7 @@ def process_package(filelike, hash_functions):
name = af.read_entry()
except EOFError:
raise ValueError("data.tar not found")
- if name.startswith("control.tar"):
+ if name.startswith(b"control.tar"):
if state != "start":
raise ValueError("unexpected control.tar")
state = "control"
@@ -76,7 +77,7 @@ def process_package(filelike, hash_functions):
yield process_control(tf.extractfile(elem).read())
break
continue
- elif name.startswith("data.tar"):
+ elif name.startswith(b"data.tar"):
if state != "control_file":
raise ValueError("missing control file")
state = "data"