summaryrefslogtreecommitdiffstats
path: root/pym
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2008-05-02 22:32:01 +0000
committerZac Medico <zmedico@gentoo.org>2008-05-02 22:32:01 +0000
commit2b4c93414724a8704d2f8419f03f925e3b0ed674 (patch)
tree352e0a34161dd8c311c58517c05271aa264aadb6 /pym
parent14c622b322410ad141fd5d2a4caa1e7c24a9ec6f (diff)
downloadportage-2b4c93414724a8704d2f8419f03f925e3b0ed674.tar.gz
portage-2b4c93414724a8704d2f8419f03f925e3b0ed674.tar.bz2
portage-2b4c93414724a8704d2f8419f03f925e3b0ed674.zip
Add a PackageVirtualDbapi.__iter__() method and use it to iterate over
all installed packages in depgraph.validate_blockers(). svn path=/main/trunk/; revision=10112
Diffstat (limited to 'pym')
-rw-r--r--pym/_emerge/__init__.py9
1 files changed, 5 insertions, 4 deletions
diff --git a/pym/_emerge/__init__.py b/pym/_emerge/__init__.py
index b3e57f4ff..41f559cae 100644
--- a/pym/_emerge/__init__.py
+++ b/pym/_emerge/__init__.py
@@ -1518,6 +1518,9 @@ class PackageVirtualDbapi(portage.dbapi):
obj._cpv_map = self._cpv_map.copy()
return obj
+ def __iter__(self):
+ return self._cpv_map.itervalues()
+
def __contains__(self, item):
existing = self._cpv_map.get(item.cpv)
if existing is not None and \
@@ -3118,14 +3121,12 @@ class depgraph(object):
portdb = self.trees[myroot]["porttree"].dbapi
pkgsettings = self.pkgsettings[myroot]
final_db = self.mydbapi[myroot]
- cpv_all_installed = self.trees[myroot]["vartree"].dbapi.cpv_all()
blocker_cache = BlockerCache(myroot, vardb)
stale_cache = set(blocker_cache)
- for cpv in cpv_all_installed:
+ for pkg in vardb:
+ cpv = pkg.cpv
stale_cache.discard(cpv)
blocker_atoms = None
- pkg = self._pkg_cache[
- ("installed", myroot, cpv, "nomerge")]
blockers = None
if self.digraph.contains(pkg):
try: