Source code for tnetwork.readwrite.LS_graph_io

import tnetwork as tn
import json

__all__ = ["write_as_LS", "read_LS", ]

[docs]def write_as_LS(graph, filename): """ :param filename: :return: """ nodes = list(graph._graph.nodes()) dict_nodes = {n: i for i, n in enumerate(nodes)} times = list(graph.change_times()) dict_times = {t: i for i, t in enumerate(times)} interactions = graph.edge_presence() interactions = {str((dict_nodes[e[0]], dict_nodes[e[1]])): [dict_times[t] for t in ts] for e, ts in interactions.items()} json.dump({"frequency":graph.frequency,"nodes": nodes, "times": times, "interactions": interactions}, open(filename, 'w'))
[docs]def read_LS(filename): """ Read TS json format :param filename: :return: """ g = json.load(open(filename, 'r')) node_dict = {i: n for i, n in enumerate(g["nodes"])} time_dict = {i: t for i, t in enumerate(g["times"])} freq = g["frequency"] edges = g["interactions"] edges = {eval(e): [time_dict[t] for t in ts] for e, ts in edges.items()} edges = {(node_dict[e[0]], node_dict[e[1]]): ts for e, ts in edges.items()} return tn.DynGraphLS(edges=edges,frequency=freq)