def detach(self, *nodes: EntityView, recursive=False): for subgraph in nodes: if recursive: for node in traverse_view_iter(subgraph): remove_from_scope(self, node) else: remove_from_scope(self, subgraph)
def to_adjacency_list(self): from grapl_analyzerlib.viewable import traverse_view_iter from collections import defaultdict node_dicts = defaultdict(dict) edges = defaultdict(list) for node in traverse_view_iter(self): node_dict = node.to_dict() node_dicts[node_dict["node"]["node_key"]] = node_dict["node"] edges[node_dict["node"]["node_key"]].extend(node_dict["edges"]) return {"nodes": node_dicts, "edges": edges}