When displaying parents of unsolved blockers, reduce noise by pruning packages
authorZac Medico <zmedico@gentoo.org>
Sat, 10 Jan 2009 22:26:11 +0000 (22:26 -0000)
committerZac Medico <zmedico@gentoo.org>
Sat, 10 Jan 2009 22:26:11 +0000 (22:26 -0000)
that are only pulled in by other conflict packages.

svn path=/main/trunk/; revision=12420

pym/_emerge/__init__.py

index 5185298c5a7e438188d321562132c304031bad99..6e0d4e49cfa423f12e088a41a7ba062cd0b9fd19 100644 (file)
@@ -7239,6 +7239,21 @@ class depgraph(object):
                                if parent_atoms:
                                        conflict_pkgs[pkg] = parent_atoms
 
+               if conflict_pkgs:
+                       # Reduce noise by pruning packages that are only
+                       # pulled in by other conflict packages.
+                       pruned_pkgs = set()
+                       for pkg, parent_atoms in conflict_pkgs.iteritems():
+                               relevant_parent = False
+                               for parent, atom in parent_atoms:
+                                       if parent not in conflict_pkgs:
+                                               relevant_parent = True
+                                               break
+                               if not relevant_parent:
+                                       pruned_pkgs.add(pkg)
+                       for pkg in pruned_pkgs:
+                               del conflict_pkgs[pkg]
+
                if conflict_pkgs:
                        msg = []
                        msg.append("\n")