Changeset View
Changeset View
Standalone View
Standalone View
swh/graph/graph.py
Show First 20 Lines • Show All 68 Lines • ▼ Show 20 Lines | class GraphNode: | ||||
def parents(self): | def parents(self): | ||||
return Neighbors( | return Neighbors( | ||||
self.graph, | self.graph, | ||||
self.graph.java_graph.predecessors(self.id), | self.graph.java_graph.predecessors(self.id), | ||||
lambda: self.graph.java_graph.indegree(self.id), | lambda: self.graph.java_graph.indegree(self.id), | ||||
) | ) | ||||
def simple_traversal(self, ttype, direction="forward", edges="*", max_edges=0): | def simple_traversal( | ||||
self, ttype, direction="forward", edges="*", max_edges=0, return_types="*" | |||||
): | |||||
for node in call_async_gen( | for node in call_async_gen( | ||||
self.graph.backend.simple_traversal, | self.graph.backend.simple_traversal, | ||||
ttype, | ttype, | ||||
direction, | direction, | ||||
edges, | edges, | ||||
self.id, | self.id, | ||||
max_edges, | max_edges, | ||||
return_types, | |||||
): | ): | ||||
yield self.graph[node] | yield self.graph[node] | ||||
def leaves(self, *args, **kwargs): | def leaves(self, *args, **kwargs): | ||||
yield from self.simple_traversal("leaves", *args, **kwargs) | yield from self.simple_traversal("leaves", *args, **kwargs) | ||||
def visit_nodes(self, *args, **kwargs): | def visit_nodes(self, *args, **kwargs): | ||||
yield from self.simple_traversal("visit_nodes", *args, **kwargs) | yield from self.simple_traversal("visit_nodes", *args, **kwargs) | ||||
▲ Show 20 Lines • Show All 98 Lines • Show Last 20 Lines |