show_unsatisfied_blockers: don't omit any pkgs
authorZac Medico <zmedico@gentoo.org>
Sat, 11 Jun 2011 00:42:18 +0000 (17:42 -0700)
committerZac Medico <zmedico@gentoo.org>
Sat, 11 Jun 2011 00:42:53 +0000 (17:42 -0700)
It can be essential to see all the packages here, so don't omit any.
If the list is long, people can simply use a pager.

pym/_emerge/depgraph.py

index 8e06aff3884290e2a2629a6ae0ffc5ec09464c58..fab10eb02dae52811ea89614069913a4c9d450f4 100644 (file)
@@ -5537,29 +5537,26 @@ class depgraph(object):
                        msg = []
                        msg.append("\n")
                        indent = "  "
-                       # Max number of parents shown, to avoid flooding the display.
-                       max_parents = 3
                        for pkg, parent_atoms in conflict_pkgs.items():
 
-                               pruned_list = set()
-
                                # Prefer packages that are not directly involved in a conflict.
+                               # It can be essential to see all the packages here, so don't
+                               # omit any. If the list is long, people can simply use a pager.
+                               preferred_parents = set()
                                for parent_atom in parent_atoms:
-                                       if len(pruned_list) >= max_parents:
-                                               break
                                        parent, atom = parent_atom
                                        if parent not in conflict_pkgs:
-                                               pruned_list.add(parent_atom)
+                                               preferred_parents.add(parent_atom)
 
-                               for parent_atom in parent_atoms:
-                                       if len(pruned_list) >= max_parents:
-                                               break
-                                       pruned_list.add(parent_atom)
+                               ordered_list = list(preferred_parents)
+                               if len(parent_atoms) > len(ordered_list):
+                                       for parent_atom in parent_atoms:
+                                               if parent_atom not in preferred_parents:
+                                                       ordered_list.append(parent_atom)
 
-                               omitted_parents = len(parent_atoms) - len(pruned_list)
                                msg.append(indent + "%s pulled in by\n" % pkg)
 
-                               for parent_atom in pruned_list:
+                               for parent_atom in ordered_list:
                                        parent, atom = parent_atom
                                        msg.append(2*indent)
                                        if isinstance(parent,
@@ -5573,10 +5570,6 @@ class depgraph(object):
                                                msg.append("%s required by %s" % (atom, parent))
                                        msg.append("\n")
 
-                               if omitted_parents:
-                                       msg.append(2*indent)
-                                       msg.append("(and %d more)\n" % omitted_parents)
-
                                msg.append("\n")
 
                        writemsg("".join(msg), noiselevel=-1)