Add an ignore_priority parameter to digraph.parent_nodes().
authorZac Medico <zmedico@gentoo.org>
Thu, 22 Jan 2009 22:26:49 +0000 (22:26 -0000)
committerZac Medico <zmedico@gentoo.org>
Thu, 22 Jan 2009 22:26:49 +0000 (22:26 -0000)
svn path=/main/trunk/; revision=12551

pym/portage/__init__.py

index a3acb91d1dc537206955105e74e13e0dcd6f5e98..5dbb982ab97bd571a6060d827b0c76c13be9f214 100644 (file)
@@ -459,16 +459,22 @@ class digraph(object):
        def child_nodes(self, node, ignore_priority=None):
                """Return all children of the specified node"""
                if ignore_priority is None:
-                       return self.nodes[node][0].keys()
+                       return list(self.nodes[node][0])
                children = []
                for child, priority in self.nodes[node][0].iteritems():
                        if priority > ignore_priority:
                                children.append(child)
                return children
 
-       def parent_nodes(self, node):
+       def parent_nodes(self, node, ignore_priority=None):
                """Return all parents of the specified node"""
-               return self.nodes[node][1].keys()
+               if ignore_priority is None:
+                       return list(self.nodes[node][1])
+               parents = []
+               for parent, priority in self.nodes[node][1].iteritems():
+                       if priority > ignore_priority:
+                               parents.append(parent)
+               return parents
 
        def leaf_nodes(self, ignore_priority=None):
                """Return all nodes that have no children