def collect_edges()

in visualize_rules_graph.py [0:0]


def collect_edges(edges_toml_dict):
    """
    Groups outgoing edges by rule/group.

    All names are sanitized to replace empty spaces by `_`.
    """
    for edge_toml in edges_toml_dict['edges']:
        from_node = sanitize_name(edge_toml['from'])
        to_nodes: 'list[str]' = edge_toml['to']
        scope = sanitize_name(edge_toml['scope'])
        for to_node in to_nodes:
            to_node = sanitize_name(to_node)
            edge = Edge(to=to_node, scope=scope)
            if from_node in outgoing_edges_by_node:
                outgoing_edges_by_node[from_node].append(edge)
            else:
                outgoing_edges_by_node[from_node] = [edge]