Adapt NetworkGroup.create_graph to dynamic graph data

In the case of dynamic graphs, graph data is stored in a NetworkGroup for every time step. Currently the create_graph function, however, only copes with one set of DataContainer defining the nodes and edges.

Proposal

In the case that nodes and edges are provided in different DataContainer within separate DataGroups it should be able to create a graph at a desired time:

    def create_graph(self, *, directed: bool=None, parallel_edges: bool=None, at_time: int=None,
                     **graph_kwargs) -> nx.Graph:

If no time is specified the function should return an array of graphs.

In the case of dynamic graphs, setting node and edge properties is uncomplicated because the can be clearly associated with a time step. Related issue: #57 (closed)

How to test the implementation?

Write tests to check whether graphs are created correctly

Related issues

#57 (closed)

Edited by Utopia Developers