Skip to content

Commit

Permalink
add a graph data exporter
Browse files Browse the repository at this point in the history
  • Loading branch information
PierreRochard committed Jan 14, 2019
1 parent a8e15a0 commit ddf6318
Showing 1 changed file with 34 additions and 0 deletions.
34 changes: 34 additions & 0 deletions tools/graph_data_exporter.py
@@ -0,0 +1,34 @@
import csv
import time
from typing import List

from google.protobuf.json_format import MessageToDict

from node_launcher.node_set.lnd_client.rpc_pb2 import ChannelGraph
from tools.channel_balancer import lnd_client


def save_to_csv(name: str, data: List[dict]):
timestamp = time.time()
with open(f'{name}-{timestamp}.csv', 'w') as f:
w = csv.DictWriter(f, data[0].keys())
w.writeheader()
for d in data:
w.writerow(d)


def convert_to_dict(data):
data = [MessageToDict(d) for d in data]
return data


def extract_data():
graph: ChannelGraph = lnd_client.get_graph()
nodes = convert_to_dict(graph.nodes)
edges = convert_to_dict(graph.edges)
save_to_csv(name='nodes', data=nodes)
save_to_csv(name='edges', data=edges)


if __name__ == '__main__':
extract_data()

0 comments on commit ddf6318

Please sign in to comment.