]> hydra-www.ietfng.org Git - dyna2/commitdiff
escape quote characters so we don't break graphviz.
authortimv <tim.f.vieira@gmail.com>
Wed, 12 Dec 2012 02:43:46 +0000 (21:43 -0500)
committertimv <tim.f.vieira@gmail.com>
Wed, 12 Dec 2012 02:43:46 +0000 (21:43 -0500)
bin/prototype.py

index 0cb721c447f410850737dbb7889c1c56a109455b..bb1e56542385d0ee314fe33f364a030297e2b5ec 100644 (file)
@@ -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, '}'