From 54d03621bfb6bc13911a2461ad818aa744285fbe Mon Sep 17 00:00:00 2001 From: Zac Medico Date: Tue, 8 Apr 2008 23:55:25 +0000 Subject: Split out a depgraph method to check if a specific new-style virtual package exists. svn path=/main/trunk/; revision=9761 --- pym/_emerge/__init__.py | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) (limited to 'pym') diff --git a/pym/_emerge/__init__.py b/pym/_emerge/__init__.py index 46a569ed4..955ab8979 100644 --- a/pym/_emerge/__init__.py +++ b/pym/_emerge/__init__.py @@ -2011,6 +2011,15 @@ class depgraph(object): return 0 return 1 + def _have_new_virt(self, root, atom_cp): + ret = False + for db, pkg_type, built, installed, db_keys in \ + self._filtered_trees[root]["dbs"]: + if db.cp_list(atom_cp): + ret = True + break + return ret + def _iter_atoms_for_pkg(self, pkg): # TODO: add multiple $ROOT support if pkg.root != self.target_root: @@ -2018,15 +2027,9 @@ class depgraph(object): atom_arg_map = self._atom_arg_map for atom in self._set_atoms.iterAtomsForPackage(pkg): atom_cp = portage.dep_getkey(atom) - if atom_cp != pkg.cp: - have_new_virt = False - for db, pkg_type, built, installed, db_keys in \ - self._filtered_trees[pkg.root]["dbs"]: - if db.cp_list(atom_cp): - have_new_virt = True - break - if have_new_virt: - continue + if atom_cp != pkg.cp and \ + self._have_new_virt(pkg.root, atom_cp): + continue for arg in atom_arg_map[(atom, pkg.root)]: if isinstance(arg, PackageArg) and \ arg.package != pkg: -- cgit v1.2.3-1-g7c22