def _load_data():
# https://github.com/raumkraut/python-debian/blob/master/README.deb822
global _data
mirror = BP.config['L4TM_MIRROR']
release = BP.config['L4TM_RELEASE']
repo = '%s/dists/%s/%%s/%%s/Packages.gz' % (mirror, release)
_data = {}
for area in BP.config['L4TM_AREAS']:
for arch in ('binary-all', 'binary-arm64'):
BP.logger.info('Loading/processing %s/%s/Packages.gz...' % (
area, arch))
pkgarea = repo % (area, arch)
pkgresp = HTTP_REQUESTS.get(pkgarea)
if pkgresp.status_code != 200:
BP.logger.error('%s not found' % arch)
continue
BP.logger.debug('Uncompressing %s bytes' % pkgresp.headers['content-length'])
unzipped = gzip.decompress(pkgresp.content) # bytes all around
BP.logger.debug('Parsing %d bytes of package data' % len(unzipped))
unzipped = BytesIO(unzipped) # the next step needs read()
tmp = [ src for src in Packages.iter_paragraphs(unzipped) ]
_data.update(dict((pkg['Package'], pkg) for pkg in tmp))
评论列表
文章目录