def graph_package_deps(self, p, pngname): tl = Timeline() def epoch(t): return t.toordinal() #float(t.strftime("%s")) def authColor(p): return hashColor(self.author(p)) #depbar = "LightSkyBlue" #focalbar = "Yellow" reflbar = "PaleGoldenrod" vers_names = self.versions(p) # extend each version until the end of hte subsequent version for v,w in zip(vers_names[:-1], vers_names[1:]): # Lost author for author color tl.span(p, epoch(self.dc[p][v]), epoch(self.dc[p][w]), p + ":" + v, v, authColor(p), None) vlast = vers_names[-1] tl.span(p, epoch(self.dc[p][vlast]), epoch(self.end_of_time), p + ":" + vlast, vlast, authColor(p), None) for dep in self.dependencies(p): for (ref,st,en) in self.dep_version_spans(p, dep): tl.span(dep, epoch(st), epoch(en), dep + "::" + ref, ref, reflbar, "bottom") depvers = self.dep_versions(p, dep) try: vn2 = self.versions(dep) for vv,ww in zip(vn2[:-1], vn2[1:]): self.logwith( "deploop", vv,ww, self.dc[dep].keys()) tl.span(dep, epoch(self.dc[dep][vv]), epoch(self.dc[dep][ww]), dep + ":" + vv, vv, authColor(dep), "top") vvlast = vn2[-1] tl.span(dep, epoch(self.dc[dep][vvlast]), epoch(self.end_of_time), dep + ":" + vvlast, vvlast, authColor(dep), "top") except Exception, e: self.logwith("Exception processing dependency", dep, e) for vn in vers_names: if vn in depvers: dep_ver = self.extractVersionLimiter(depvers[vn]) self.logwith( dep_ver) destrec = tl.findByKey(dep + ":" + dep_ver) srcrec = tl.findByKey(p + ":" + vn) if len(destrec) > 0 and len(srcrec) > 0: tl.connect(destrec[0], srcrec[0]) self.logwith( "version", vn, "of", p, "did link to dependency", dep, "version", dep_ver) else: self.logwith( "version", vn, "of", p, "***can't*** find dependency", \ dep, "version", dep_ver, "lendestrec=", len(destrec), "lensrcrec=", len(srcrec)) else: self.logwith(vn,"is not in",list(depvers)) self.logwith( "version", vn, "of", p, "did not update dependency on", dep)
def graph_package_downstreams(self, p, pngname): tl = Timeline() def epoch(t): return t.toordinal() #float(t.strftime("%s")) def authColor(p): return hashColor(self.author(p)) reflbar = "PaleGoldenrod" vers_names = self.versions(p) # Just show the first 20; the image gets too big otherwise for dep in list(self.reverse_dependencies(p))[:20]: for (ref,st,en) in self.dep_version_spans(dep, p): try: vname = str(ref).strip() if vname == "": vname = "*" except: self.logwith("Could not correct version name ", ref) vname = ref tl.span(dep, epoch(st), epoch(en), dep + "::" + ref, "-->" + vname, reflbar, "bottom", invisibleBar=True) depvers = self.dep_versions(dep, p) try: vn2 = self.versions(dep) for vv,ww in zip(vn2[:-1], vn2[1:]): self.logwith( "deploop", vv,ww, self.dc[dep].keys()) tl.span(dep, epoch(self.dc[dep][vv]), epoch(self.dc[dep][ww]), dep + ":" + vv, vv, authColor(dep), "top") vvlast = vn2[-1] tl.span(dep, epoch(self.dc[dep][vvlast]), epoch(self.end_of_time), dep + ":" + vvlast, vvlast, authColor(dep), "top") except Exception, e: self.logwith("Exception processing dependency", dep, e) for vn in vers_names: if vn in depvers: dep_ver = self.extractVersionLimiter(depvers[vn]) self.logwith( dep_ver) destrec = tl.findByKey(dep + ":" + dep_ver) srcrec = tl.findByKey(p + ":" + vn) if len(destrec) > 0 and len(srcrec) > 0: tl.connect(destrec[0], srcrec[0]) self.logwith( "version", vn, "of", p, "did link to dependency", dep, "version", dep_ver) else: self.logwith( "version", vn, "of", p, "***can't*** find dependency", \ dep, "version", dep_ver, "lendestrec=", len(destrec), "lensrcrec=", len(srcrec)) else: self.logwith(vn,"is not in",list(depvers)) self.logwith( "version", vn, "of", p, "did not update dependency on", dep)