chiark / gitweb /
changed graphs to manual dot file; added pictures; faffed about with text
[familyTree.git] / cgiFiles / bigGraph.py
index e5304e9ef571565d5855219977fdac34325d79dc..35d2b334224faf40b8677f9152748137dc805c26 100755 (executable)
@@ -4,14 +4,8 @@ import cgi
 import cgitb
 import sys
 sys.path.append('/home/naath/familyTreeProject/familyTree')
-import pygraph
-from pygraph.classes.graph import graph
-from pygraph.classes.digraph import digraph
-from pygraph.algorithms.searching import breadth_first_search
-from pygraph.readwrite.dot import write
-import gv
-import StringIO
 import askQuestion
+import make_dot as d
 
 def add_quotes(s):
         s = str(s)
@@ -24,69 +18,33 @@ conn = askQuestion.connect()
 
 famTree = askQuestion.list_people_parents()
 
-gr = digraph()
-
-couples = []
-
-attr = [('fontsize',8)]
-
+d.start_dot()
 for i in range(len(famTree)):
+#for i in range(200):
        self = famTree[i][0]
-       if not gr.has_node(self):
-               gr.add_node(self,attr)
+       d.add_person(self)
 
-       for j in range(len(famTree[i][2])):
-               s = famTree[i][2][j]
-               ps = (self,s)
-               
-               if not gr.has_node(s):
-                       gr.add_node(s,attr)
-                       a =1 
-               if not gr.has_edge(ps):
-                       gr.add_edge(ps)
-                       a = ['dir','none']
-                       gr.add_edge_attribute(ps,a)
-                       couples.append(ps)
 
-       ps = ()
+       ps = []
        for j in range(len(famTree[i][1])):
                p = famTree[i][1][j]
-               if p !='?':
-                       ps = ps + (str(p),)
-                       if not gr.has_node(p):
-                               gr.add_node(p,attr)
-                       if not gr.has_edge((p,self)):
-                               gr.add_edge((p,self))
-
-       if len(ps)==2 and not gr.has_edge(ps) \
-       and not gr.has_edge((ps[1],ps[0])):
-               gr.add_edge(ps)
-               a = ['dir','none']
-               gr.add_edge_attribute(ps,a)
-               couples.append(ps)
-               
-dot = write(gr)
+               ps.append(str(p))
 
-dot = write(gr)
-dot = dot[:-2]
+       if len(ps)==2:
+               d.add_marriage(ps[0],ps[1],[self],0)
+               d.add_subgraph(ps)
 
-for couple in couples:
-       line = "\n{rank=same "+add_quotes(couple[0]) + ' '\
-               +add_quotes(couple[1])+"}"
 
-        dot = dot + line
-
-dot = dot + '\n}'
-
-
-gvv = gv.readstring(dot)
-format='dot'
-gv.layout(gvv,format)
+       for j in range(len(famTree[i][2])):
+                s = famTree[i][2][j]
+                ps = (self,s)
 
-format = "jpg"
-print "Content-type: image/" + format + "\n"
-print gv.render(gvv,format)
+                d.add_person(s)
+                d.add_marriage(self,s,[],0)
+                d.add_subgraph(ps)
 
-#gv.render(gvv,'png','famTree.png')
+d.add_subgraphs()
+d.end_dot()
+d.render_dot()         
 
 askQuestion.close(conn)