Changeset View
Changeset View
Standalone View
Standalone View
swh/graph/graph.py
Show First 20 Lines • Show All 77 Lines • ▼ Show 20 Lines | def simple_traversal(self, ttype, direction="forward", edges="*"): | ||||
for node in call_async_gen( | for node in call_async_gen( | ||||
self.graph.backend.simple_traversal, ttype, direction, edges, self.id | self.graph.backend.simple_traversal, ttype, direction, edges, self.id | ||||
): | ): | ||||
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, direction="forward", edges="*", max_edges=0): | ||||
yield from self.simple_traversal("visit_nodes", *args, **kwargs) | for node in call_async_gen( | ||||
self.graph.backend.visit_nodes, direction, edges, self.id, max_edges | |||||
): | |||||
yield self.graph[node] | |||||
def visit_edges(self, direction="forward", edges="*"): | def visit_edges(self, direction="forward", edges="*", max_edges=0): | ||||
for src, dst in call_async_gen( | for src, dst in call_async_gen( | ||||
self.graph.backend.visit_edges, direction, edges, self.id | self.graph.backend.visit_edges, direction, edges, self.id, max_edges | ||||
): | ): | ||||
yield (self.graph[src], self.graph[dst]) | yield (self.graph[src], self.graph[dst]) | ||||
def visit_paths(self, direction="forward", edges="*"): | def visit_paths(self, direction="forward", edges="*", max_edges=0): | ||||
for path in call_async_gen( | for path in call_async_gen( | ||||
self.graph.backend.visit_paths, direction, edges, self.id | self.graph.backend.visit_paths, direction, edges, self.id, max_edges | ||||
): | ): | ||||
yield [self.graph[node] for node in path] | yield [self.graph[node] for node in path] | ||||
def walk(self, dst, direction="forward", edges="*", traversal="dfs"): | def walk(self, dst, direction="forward", edges="*", traversal="dfs"): | ||||
for node in call_async_gen( | for node in call_async_gen( | ||||
self.graph.backend.walk, direction, edges, traversal, self.id, dst | self.graph.backend.walk, direction, edges, traversal, self.id, dst | ||||
): | ): | ||||
yield self.graph[node] | yield self.graph[node] | ||||
▲ Show 20 Lines • Show All 80 Lines • Show Last 20 Lines |