From 2b4c93414724a8704d2f8419f03f925e3b0ed674 Mon Sep 17 00:00:00 2001 From: Zac Medico Date: Fri, 2 May 2008 22:32:01 +0000 Subject: Add a PackageVirtualDbapi.__iter__() method and use it to iterate over all installed packages in depgraph.validate_blockers(). svn path=/main/trunk/; revision=10112 --- pym/_emerge/__init__.py | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) (limited to 'pym/_emerge') 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: -- cgit v1.2.3-1-g7c22