Skip to content
Commits on Source (4)
......@@ -21,10 +21,6 @@ import bz2
import lzma
import zlib
from piupartslib import conf
from piupartslib import dependencyparser
from piupartslib import packagesdb
from six.moves import urllib
......@@ -49,6 +45,8 @@ class DecompressedStream():
return False
if self._decompressor:
chunk = self._decompressor.decompress(chunk)
if isinstance(chunk, bytes):
chunk = chunk.decode()
self._buffer = self._buffer + chunk
if chunk:
return True
......@@ -80,15 +78,16 @@ class DecompressedStream():
def open_packages_url(url):
"""Open a Packages.bz2 file pointed to by a URL"""
socket = None
error = None
for ext in ['.xz', '.bz2', '.gz', '']:
try:
socket = urllib.request.urlopen(url + ext)
except urllib.error.HTTPError as httperror:
pass
except urllib.error.HTTPError as e:
error = e
else:
break
if socket is None:
raise httperror
else:
raise error
url = socket.geturl()
if ext == '.bz2':
decompressor = bz2.BZ2Decompressor()
......@@ -102,7 +101,7 @@ def open_packages_url(url):
elif ext == '':
decompressed = socket
else:
raise ext
raise Exception('Unknown compression: {}'.format(ext))
return (url, decompressed)
# vi:set et ts=4 sw=4 :