Generated detailed connection graph, also output to PNG

This commit is contained in:
Przemyslaw Kaminski 2015-04-22 10:42:25 +02:00
parent 067922e71e
commit c5c8f2d754
2 changed files with 17 additions and 2 deletions

5
cli.py
View File

@ -146,10 +146,11 @@ def init_cli_connections():
# TODO: this requires graphing libraries
@click.command()
def graph():
g = xs.connection_graph()
#g = xs.connection_graph()
g = xs.detailed_connection_graph()
nx.write_dot(g, 'graph.dot')
subprocess.call(['dot', '-Tps', 'graph.dot', '-o', 'graph.ps'])
subprocess.call(['dot', '-Tpng', 'graph.dot', '-o', 'graph.png'])
# Matplotlib
#pos = nx.spring_layout(g)

View File

@ -166,3 +166,17 @@ def connection_graph():
)
return g
def detailed_connection_graph():
g = nx.MultiDiGraph()
for emitter_name, destination_values in CLIENTS.items():
for emitter_input, receivers in CLIENTS[emitter_name].items():
for receiver_name, receiver_input in receivers:
label = emitter_input
if emitter_input != receiver_input:
label = '{}:{}'.format(emitter_input, receiver_input)
g.add_edge(emitter_name, receiver_name, label=label)
return g