From e2f530cb295a7f851fddaf3445aa5fca5eec7848 Mon Sep 17 00:00:00 2001 From: timv Date: Tue, 11 Dec 2012 21:43:46 -0500 Subject: [PATCH] escape quote characters so we don't break graphviz. --- bin/prototype.py | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/bin/prototype.py b/bin/prototype.py index 0cb721c..bb1e565 100644 --- a/bin/prototype.py +++ b/bin/prototype.py @@ -24,6 +24,12 @@ class Hypergraph(object): self.nodes = set() def edge(self, head, label, body): + + label = re.sub('"', r'\\"', label) + head = re.sub('"', r'\\"', head) + body = map(lambda b: re.sub('"', r'\\"', b), body) + + e = Edge(head, label, tuple(body)) self.edges.append(e) @@ -73,12 +79,12 @@ class Hypergraph(object): # node styles for x in self.nodes: sty[x].update({'shape': 'circle'}) - print >> f, '"%s" [%s]' % (x, ','.join('%s=%s' % (k,v) for k,v in sty[x].items())) + print >> f, '"%s" [%s]' % (x, ','.join('%s="%s"' % (k,v) for k,v in sty[x].items())) # edge styles for e in self.edges: sty[e].update({'shape': 'rectangle'}) - print >> f, '"%s" [%s]' % (id(e), ','.join('%s=%s' % (k,v) for k,v in sty[e].items())) + print >> f, '"%s" [%s]' % (id(e), ','.join('%s="%s"' % (k,v) for k,v in sty[e].items())) print >> f, '}' -- 2.50.1