From: <ror...@us...> - 2007-07-08 02:44:39
|
Revision: 89 http://roreditor.svn.sourceforge.net/roreditor/?rev=89&view=rev Author: rorthomas Date: 2007-07-07 19:44:38 -0700 (Sat, 07 Jul 2007) Log Message: ----------- * changed graph generation behavior Modified Paths: -------------- trunk/lib/ror/depchecker.py Modified: trunk/lib/ror/depchecker.py =================================================================== --- trunk/lib/ror/depchecker.py 2007-07-08 01:37:54 UTC (rev 88) +++ trunk/lib/ror/depchecker.py 2007-07-08 02:44:38 UTC (rev 89) @@ -1,6 +1,5 @@ #Thomas Fischer 06/07/2007, th...@th... import sys, os, os.path, copy -import pydot DEPCHECKPATH = "depcheckerplugins" sys.path.append(os.path.join(os.path.dirname(os.path.abspath(__file__)), DEPCHECKPATH)) @@ -17,7 +16,9 @@ self.getfiles() self.createDeps() self.generateCrossDep() - self.drawGraph() + + self.tryGraph() + def getSingleDepRecursive(self, file, depth = 0): req = [file] @@ -29,8 +30,18 @@ if not self.dependfilename in self.filedeps.keys(): print "file not found in the dependency tree!" sys.exit(0) - + + def tryGraph(self): + try: + import pydot + print "pydot found, drawing graphs! beware this can take some time with big graphs!" + self.drawGraph() + except ImportError: + print "pydot not found, not drawing graphs" + pass + def drawGraph(self): + import pydot edges = [] for filenameA in self.filedeps.keys(): fileA = self.filedeps[filenameA] @@ -40,8 +51,22 @@ #edges = [(1,2), (1,3), (1,4), (3,4)] graph = pydot.graph_from_edges(edges) - graph.write('dependencies.png', prog='dot', format='png') + graph.set_type('digraph') + graph.simplify = True + graph.set("resolution", "160") + graph.set("overlap", "0.2") + graph.set("shape", "box") + for n in graph.get_node_list(): + n.set('fontsize', 12) + n.set('style', 'filled') + n.set('fillcolor', 'lightblue2') + + program = "dot" # dot or twopi + + graph.write('dependencies.jpg', prog = program, format='jpeg') + print "graph successfull written to dependencies.jpg" + def generateCrossDep(self): crossdep = 0 This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ror...@us...> - 2007-07-08 03:10:41
|
Revision: 90 http://roreditor.svn.sourceforge.net/roreditor/?rev=90&view=rev Author: rorthomas Date: 2007-07-07 20:10:37 -0700 (Sat, 07 Jul 2007) Log Message: ----------- * disabled graph and improved its settings Modified Paths: -------------- trunk/lib/ror/depchecker.py Modified: trunk/lib/ror/depchecker.py =================================================================== --- trunk/lib/ror/depchecker.py 2007-07-08 02:44:38 UTC (rev 89) +++ trunk/lib/ror/depchecker.py 2007-07-08 03:10:37 UTC (rev 90) @@ -17,7 +17,7 @@ self.createDeps() self.generateCrossDep() - self.tryGraph() + #self.tryGraph() def getSingleDepRecursive(self, file, depth = 0): @@ -53,16 +53,30 @@ graph = pydot.graph_from_edges(edges) graph.set_type('digraph') graph.simplify = True - graph.set("resolution", "160") - graph.set("overlap", "0.2") - graph.set("shape", "box") + #graph.set("resolution", "320") + graph.set("overlap", "0") + #graph.set("shape", "box") for n in graph.get_node_list(): - n.set('fontsize', 12) + n.set('fontsize', 8) n.set('style', 'filled') - n.set('fillcolor', 'lightblue2') + onlyfilename, ext = os.path.splitext(n.get_name()) + if ext == ".truck": + n.set('fillcolor', 'gold') + elif ext == ".load": + n.set('fillcolor', 'lightyellow') + elif ext == ".material": + n.set('fillcolor', 'lightseagreen') + elif ext == ".mesh": + n.set('fillcolor', 'lightsalmon') + elif ext == ".png" or ext == ".jpg" or ext == ".bmp": + n.set('fillcolor', 'lightblue') + + program = "dot" # dot or twopi + if len(self.filedeps) > 100: + program = "twopi" graph.write('dependencies.jpg', prog = program, format='jpeg') print "graph successfull written to dependencies.jpg" This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ror...@us...> - 2007-07-08 04:00:15
|
Revision: 91 http://roreditor.svn.sourceforge.net/roreditor/?rev=91&view=rev Author: rorthomas Date: 2007-07-07 21:00:10 -0700 (Sat, 07 Jul 2007) Log Message: ----------- * minor dependency corrections Modified Paths: -------------- trunk/lib/ror/depchecker.py Modified: trunk/lib/ror/depchecker.py =================================================================== --- trunk/lib/ror/depchecker.py 2007-07-08 03:10:37 UTC (rev 90) +++ trunk/lib/ror/depchecker.py 2007-07-08 04:00:10 UTC (rev 91) @@ -5,6 +5,7 @@ sys.path.append(os.path.join(os.path.dirname(os.path.abspath(__file__)), DEPCHECKPATH)) from deptools import * +REMOVE_UNUSED_MATERIALS = True @@ -16,20 +17,35 @@ self.getfiles() self.createDeps() self.generateCrossDep() - + if dependfilename != "": + self.generateSingleDep() #self.tryGraph() - def getSingleDepRecursive(self, file, depth = 0): - req = [file] - for filenameA in self.filedeps.keys(): - fileA = self.filedeps[filenameA] - #for r in + def getSingleDepRecursive(self, filename, depth = 0): + file = self.filedeps[filename] + req = [(depth, filename)] + #print file + for r in file[REQUIRES][FILE]: + try: + for rr in self.getSingleDepRecursive(r, depth + 1): + req.append((rr[0], rr[1])) + except: + pass + return req - def generateSingleGraph(self): + def generateSingleDep(self): if not self.dependfilename in self.filedeps.keys(): print "file not found in the dependency tree!" sys.exit(0) + tree = self.getSingleDepRecursive(self.dependfilename) + for t in tree: + print "+"*t[0]+t[1] + #for f in self.filedeps.keys(): + # print str(self.filedeps[f][REQUIRES]) + # print str(self.filedeps[f][REQUIREDBY]) + # print "---------------------------------" + def tryGraph(self): try: @@ -157,15 +173,21 @@ pass return mod.getDependencies(filename) + + def getFullPath(self, filename): + for f in self.files: + if os.path.basename(f) == filename: + return f + def getfiles(self): fl = {} for root, dirs, files in os.walk(self.dir): for f in files: fn = os.path.join(root, f) fl[fn] = {} - #for fk in fl.keys(): - # print "%10s %s" % ("", fk) - #print "found %d files!" % (len(fl.keys())) + for fk in fl.keys(): + print "%10s %s" % ("", fk) + print "found %d files!" % (len(fl.keys())) self.files = fl def newRelation(self, dep): This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ror...@us...> - 2007-07-08 04:20:14
|
Revision: 92 http://roreditor.svn.sourceforge.net/roreditor/?rev=92&view=rev Author: rorthomas Date: 2007-07-07 21:20:11 -0700 (Sat, 07 Jul 2007) Log Message: ----------- * added md5sums Modified Paths: -------------- trunk/lib/ror/depchecker.py Modified: trunk/lib/ror/depchecker.py =================================================================== --- trunk/lib/ror/depchecker.py 2007-07-08 04:00:10 UTC (rev 91) +++ trunk/lib/ror/depchecker.py 2007-07-08 04:20:11 UTC (rev 92) @@ -1,5 +1,5 @@ #Thomas Fischer 06/07/2007, th...@th... -import sys, os, os.path, copy +import sys, os, os.path, copy, md5 DEPCHECKPATH = "depcheckerplugins" sys.path.append(os.path.join(os.path.dirname(os.path.abspath(__file__)), DEPCHECKPATH)) @@ -24,23 +24,46 @@ def getSingleDepRecursive(self, filename, depth = 0): file = self.filedeps[filename] - req = [(depth, filename)] + req = [[depth, filename]] #print file for r in file[REQUIRES][FILE]: try: for rr in self.getSingleDepRecursive(r, depth + 1): - req.append((rr[0], rr[1])) + duplicate = False + for a in req: + if rr[1] in a: + duplicate = True + if not duplicate: + req.append([rr[0], rr[1]]) except: pass return req + + def readFile(self, filename): + f=open(filename, 'rb') + content = f.read() + f.close() + return content + def md5Sum(self, filename): + try: + content = self.readFile(filename) + #print len(content) + except: + return + return md5.new(content).hexdigest() + def generateSingleDep(self): if not self.dependfilename in self.filedeps.keys(): print "file not found in the dependency tree!" sys.exit(0) - tree = self.getSingleDepRecursive(self.dependfilename) + tree = self.getSingleDepRecursive(self.dependfilename) for t in tree: - print "+"*t[0]+t[1] + t.append(self.getFullPath(t[1])) + for t in tree: + t.append(self.md5Sum(t[2])) + for t in tree: + print "%-50s %-30s" % ("+"*t[0]+t[2], t[3]) #for f in self.filedeps.keys(): # print str(self.filedeps[f][REQUIRES]) # print str(self.filedeps[f][REQUIREDBY]) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ror...@us...> - 2007-07-16 05:59:09
|
Revision: 104 http://roreditor.svn.sourceforge.net/roreditor/?rev=104&view=rev Author: rorthomas Date: 2007-07-15 22:59:08 -0700 (Sun, 15 Jul 2007) Log Message: ----------- * minor improvements in depchecker.py Modified Paths: -------------- trunk/lib/ror/depchecker.py Modified: trunk/lib/ror/depchecker.py =================================================================== --- trunk/lib/ror/depchecker.py 2007-07-16 05:35:01 UTC (rev 103) +++ trunk/lib/ror/depchecker.py 2007-07-16 05:59:08 UTC (rev 104) @@ -156,7 +156,7 @@ graph.set_type('digraph') graph.simplify = True #graph.set("resolution", "320") - #graph.set("overlap", "0") + #graph.set("overlap", "scale") #graph.set("shape", "box") for n in graph.get_node_list(): @@ -182,12 +182,16 @@ + #graph.set("ranksep", "2") + #graph.set("splines", True) program = "dot" # dot or twopi + # this takes very long: #if len(self.filedeps) > 100: # program = "twopi" + # graph.set("overlap", "scale") graph.write(fn, prog = program, format='png') - print "graph successfull written to dependencies.png" + print "graph successfull written to " + fn def generateCrossDep(self): This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ror...@us...> - 2007-07-16 04:51:22
|
Revision: 102 http://roreditor.svn.sourceforge.net/roreditor/?rev=102&view=rev Author: rorthomas Date: 2007-07-15 21:51:21 -0700 (Sun, 15 Jul 2007) Log Message: ----------- * added single graph dependency checking Modified Paths: -------------- trunk/lib/ror/depchecker.py Modified: trunk/lib/ror/depchecker.py =================================================================== --- trunk/lib/ror/depchecker.py 2007-07-15 19:03:22 UTC (rev 101) +++ trunk/lib/ror/depchecker.py 2007-07-16 04:51:21 UTC (rev 102) @@ -30,7 +30,7 @@ self.generateCrossDep() if dependfilename != "": self.generateSingleDep() - self.tryGraph() + #self.tryGraph() def savemd5(self): lines = [] @@ -51,8 +51,8 @@ for rsub in req: if rr['filename'] == rsub['filename']: duplicate = True - if not duplicate: - req.append(rr) + #if not duplicate: + req.append(rr) except: pass return req @@ -68,7 +68,8 @@ t['md5sum'] = self.md5Sum(t['fullpath']) print "%-30s %-30s" % ("+"*t['depth']+t['filename'], t['md5sum']) #self.removeOriginalFilesFromSingleDep - #for f in self.filedeps.keys(): + #for t in tree: + # f = t['filename'] # print str(self.filedeps[f][REQUIRES]) # print str(self.filedeps[f][REQUIREDBY]) # print "---------------------------------" @@ -121,7 +122,31 @@ for rel in fileA[REQUIRES][FILE]: e = (filenameA, rel) edges.append(e) + fn = 'dependencies.png' else: + od = -1 + parents = [] + for t in tree: + d = t['depth'] + f = t['filename'] + if d > od: + if len(parents) > 0: + #print "1", (parents[-1], f) + edges.append((parents[-1], f)) + parents.append(f) + elif d == od: + #print "2" + edges.append((parents[-1], f)) + elif d < od: + for i in range(0, od - d + 1): + del parents[-1] + #print "3", od - d, (parents[-1], f) + edges.append((parents[-1], f)) + parents.append(f) + + + od = d + fn = 'dependencies_single.png' pass #edges = [(1,2), (1,3), (1,4), (3,4)] @@ -157,7 +182,7 @@ #if len(self.filedeps) > 100: # program = "twopi" - graph.write('dependencies.png', prog = program, format='png') + graph.write(fn, prog = program, format='png') print "graph successfull written to dependencies.png" @@ -302,6 +327,8 @@ sys.exit(0) def main(): + if len(sys.argv) < 3: + usage() if not os.path.isdir(sys.argv[1]): print "%s is not a valid directory!" % sys.argv[1] usage() This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |