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