import networkx as nx from evrouting.graph_tools import node_convert, edge_convert from evrouting.graph_tools import TemplateEdge as Edge from evrouting.graph_tools import TemplateNode as Node # List of configs config_list = ['edge_case'] edge_case = { 'b_0': 0, 'b_t': 0, 'U': 4, 's': 0, 't': 2, 'nodes': [ Node('s', charging_coeff=1), Node('a', charging_coeff=2), Node('t'), ], 'edges': [ Edge(0, 1, distance=1, consumption=1), Edge(0, 2, distance=1, consumption=4), Edge(1, 2, distance=1, consumption=1), ] } def get_graph(config): G = nx.Graph() for node_id, node in enumerate(config['nodes']): G.add_node(node_id, **node_convert(node)) for edge in config['edges']: G.add_edge(edge.u, edge.v, **edge_convert(edge)) return G