From 8b14daf190f7eadbe8344f52466669d55fbdd354 Mon Sep 17 00:00:00 2001 From: Anna Wiggins Date: Tue, 31 Oct 2023 18:57:21 +0000 Subject: [PATCH] Add documentation and port to python3. --- polygraph.py | 20 ++++++++++++-------- readme.md | 23 +++++++++++++++++++++++ requirements.txt | 1 + 3 files changed, 36 insertions(+), 8 deletions(-) create mode 100644 readme.md create mode 100644 requirements.txt diff --git a/polygraph.py b/polygraph.py index 3d13d10..c531f9e 100755 --- a/polygraph.py +++ b/polygraph.py @@ -1,4 +1,4 @@ -#!/usr/bin/python +#!/usr/bin/python3 import pygraphviz as pgv import json @@ -18,7 +18,7 @@ def main(): try: data = json.load(open(settings.input, 'r')) except Exception as e: - print "Error parsing data file: " + str(e) + print("Error parsing data file: " + str(e)) return graph = pgv.AGraph() @@ -29,19 +29,23 @@ def main(): # Add nodes to graph for user in data['members']: node_color = 'white' - if settings.color and user.has_key('color'): - node_color = user['color'] - + if settings.color and 'color' in user: + node_color = user['color'] graph.add_node(user['name'], fillcolor=node_color) + # if user.has_key('cloud') and user['cloud'] = true: + # graph.add_node() + # graph.add_edge() + + # Add edges to graph for relationship in data['relationships']: edge_style = 'solid' - if relationship.has_key('style'): edge_style = relationship['style'] + if 'style' in relationship: edge_style = relationship['style'] edge_color = 'black' - if relationship.has_key('color'): edge_color = relationship['color'] + if 'color' in relationship: edge_color = relationship['color'] edge_label = None - if relationship.has_key('label'): edge_label = relationship['label'] + if 'label' in relationship: edge_label = relationship['label'] member0 = relationship['members'][0] member1 = relationship['members'][1] diff --git a/readme.md b/readme.md new file mode 100644 index 0000000..7341e4c --- /dev/null +++ b/readme.md @@ -0,0 +1,23 @@ +# Polygraph - polycule visualization for nerds + +This program is a thin shell on top of pygraphviz aimed at making it easy to draw a graph of your polyamorous network. + +It can, of course, be trivially used for anyone who wants a quick way to define a graph and render it; it's just +a thin shell on top of a few of pygraphviz' features. Feel free to use it for anything that seems useful to you! + +## Installation + +On Ubuntu, just run: + +``` +sudo apt install graphviz-dev python3-pydot +pip3 install -r requirements.txt +``` + +Now you can define a graph file and run the tool with: + +``` +./polygraph.py -i -o +``` + +See `./polygraph.py --help` for more detailed options. diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..7d3252d --- /dev/null +++ b/requirements.txt @@ -0,0 +1 @@ +pygraphviz