def branchentry(self, branch): # check if this branch must be checked, if not, recurse further if not NifSpell._branchinspect(self, branch): return True blocktype = branch.__class__.__name__ reports = self.toaster.reports_per_blocktype.get(blocktype) if not reports: # start a new report for this block type row = "<tr>" row += "<th>%s</th>" % "file" row += "<th>%s</th>" % "id" for attr in branch._get_filtered_attribute_list(data=self.data): row += ("<th>%s</th>" % escape(attr.displayname, self.ENTITIES)) row += "</tr>" reports = [row] self.toaster.reports_per_blocktype[blocktype] = reports row = "<tr>" row += "<td>%s</td>" % escape(self.stream.name) row += "<td>%s</td>" % escape("0x%08X" % id(branch), self.ENTITIES) for attr in branch._get_filtered_attribute_list(data=self.data): row += ("<td>%s</td>" % escape(dumpAttr(getattr(branch, "_%s_value_" % attr.name)), self.ENTITIES)) row += "</tr>" reports.append(row) # keep looking for blocks of interest return True