1
0
mirror of https://git.yoctoproject.org/poky synced 2026-05-09 17:39:31 +00:00

cache: make use of defaultdict

(Bitbake rev: 7171019b11ad656d0edb979564941fcf92ab0a02)

Signed-off-by: Chris Larson <chris_larson@mentor.com>
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
This commit is contained in:
Chris Larson
2010-11-16 13:06:10 -07:00
committed by Richard Purdie
parent 9c7c18d06f
commit f207bb7c93
+10 -34
View File
@@ -30,6 +30,7 @@
import os import os
import logging import logging
from collections import defaultdict
import bb.data import bb.data
import bb.utils import bb.utils
@@ -374,8 +375,6 @@ class Cache:
cacheData.task_deps[file_name] = self.getVar("_task_deps", file_name) cacheData.task_deps[file_name] = self.getVar("_task_deps", file_name)
# build PackageName to FileName lookup table # build PackageName to FileName lookup table
if pn not in cacheData.pkg_pn:
cacheData.pkg_pn[pn] = []
cacheData.pkg_pn[pn].append(file_name) cacheData.pkg_pn[pn].append(file_name)
cacheData.stamp[file_name] = self.getVar('STAMP', file_name, True) cacheData.stamp[file_name] = self.getVar('STAMP', file_name, True)
@@ -397,18 +396,12 @@ class Cache:
# Build forward and reverse provider hashes # Build forward and reverse provider hashes
# Forward: virtual -> [filenames] # Forward: virtual -> [filenames]
# Reverse: PN -> [virtuals] # Reverse: PN -> [virtuals]
if pn not in cacheData.pn_provides:
cacheData.pn_provides[pn] = []
cacheData.fn_provides[file_name] = provides cacheData.fn_provides[file_name] = provides
for provide in provides: for provide in provides:
if provide not in cacheData.providers:
cacheData.providers[provide] = []
cacheData.providers[provide].append(file_name) cacheData.providers[provide].append(file_name)
if not provide in cacheData.pn_provides[pn]: if not provide in cacheData.pn_provides[pn]:
cacheData.pn_provides[pn].append(provide) cacheData.pn_provides[pn].append(provide)
cacheData.deps[file_name] = []
for dep in depends: for dep in depends:
if not dep in cacheData.deps[file_name]: if not dep in cacheData.deps[file_name]:
cacheData.deps[file_name].append(dep) cacheData.deps[file_name].append(dep)
@@ -418,36 +411,19 @@ class Cache:
# Build reverse hash for PACKAGES, so runtime dependencies # Build reverse hash for PACKAGES, so runtime dependencies
# can be be resolved (RDEPENDS, RRECOMMENDS etc.) # can be be resolved (RDEPENDS, RRECOMMENDS etc.)
for package in packages: for package in packages:
if not package in cacheData.packages:
cacheData.packages[package] = []
cacheData.packages[package].append(file_name) cacheData.packages[package].append(file_name)
rprovides += (self.getVar("RPROVIDES_%s" % package, file_name, 1) or "").split() rprovides += (self.getVar("RPROVIDES_%s" % package, file_name, 1) or "").split()
for package in packages_dynamic: for package in packages_dynamic:
if not package in cacheData.packages_dynamic:
cacheData.packages_dynamic[package] = []
cacheData.packages_dynamic[package].append(file_name) cacheData.packages_dynamic[package].append(file_name)
for rprovide in rprovides: for rprovide in rprovides:
if not rprovide in cacheData.rproviders:
cacheData.rproviders[rprovide] = []
cacheData.rproviders[rprovide].append(file_name) cacheData.rproviders[rprovide].append(file_name)
# Build hash of runtime depends and rececommends # Build hash of runtime depends and rececommends
if not file_name in cacheData.rundeps:
cacheData.rundeps[file_name] = {}
if not file_name in cacheData.runrecs:
cacheData.runrecs[file_name] = {}
rdepends = bb.utils.explode_deps(self.getVar('RDEPENDS', file_name, True) or "") rdepends = bb.utils.explode_deps(self.getVar('RDEPENDS', file_name, True) or "")
rrecommends = bb.utils.explode_deps(self.getVar('RRECOMMENDS', file_name, True) or "") rrecommends = bb.utils.explode_deps(self.getVar('RRECOMMENDS', file_name, True) or "")
for package in packages + [pn]: for package in packages + [pn]:
if not package in cacheData.rundeps[file_name]:
cacheData.rundeps[file_name][package] = []
if not package in cacheData.runrecs[file_name]:
cacheData.runrecs[file_name][package] = []
rdeps_pkg = bb.utils.explode_deps(self.getVar('RDEPENDS_%s' % package, file_name, True) or "") rdeps_pkg = bb.utils.explode_deps(self.getVar('RDEPENDS_%s' % package, file_name, True) or "")
cacheData.rundeps[file_name][package] = rdepends + rdeps_pkg cacheData.rundeps[file_name][package] = rdepends + rdeps_pkg
rrecs_pkg = bb.utils.explode_deps(self.getVar('RDEPENDS_%s' % package, file_name, True) or "") rrecs_pkg = bb.utils.explode_deps(self.getVar('RDEPENDS_%s' % package, file_name, True) or "")
@@ -531,21 +507,21 @@ class CacheData:
Direct cache variables Direct cache variables
(from Cache.handle_data) (from Cache.handle_data)
""" """
self.providers = {} self.providers = defaultdict(list)
self.rproviders = {} self.rproviders = defaultdict(list)
self.packages = {} self.packages = defaultdict(list)
self.packages_dynamic = {} self.packages_dynamic = defaultdict(list)
self.possible_world = [] self.possible_world = []
self.pkg_pn = {} self.pkg_pn = defaultdict(list)
self.pkg_fn = {} self.pkg_fn = {}
self.pkg_pepvpr = {} self.pkg_pepvpr = {}
self.pkg_dp = {} self.pkg_dp = {}
self.pn_provides = {} self.pn_provides = defaultdict(list)
self.fn_provides = {} self.fn_provides = {}
self.all_depends = [] self.all_depends = []
self.deps = {} self.deps = defaultdict(list)
self.rundeps = {} self.rundeps = defaultdict(lambda: defaultdict(list))
self.runrecs = {} self.runrecs = defaultdict(lambda: defaultdict(list))
self.task_queues = {} self.task_queues = {}
self.task_deps = {} self.task_deps = {}
self.stamp = {} self.stamp = {}