def flush(self): VALCOL_LEN = 16 write = self.logf.write cpunames = sorted(self.cpunames) if not self.printed_header: if self.timestamp: write("%9s" % "") self.print_line_header("", "") for j in cpunames: write("%*s " % (VALCOL_LEN, j)) write("\n") self.printed_header = True for key in sorted(sorted(self.nodes.keys(), key=lambda x: x[1]), key=lambda x: x[0] == ""): node = self.nodes[key] desc = None sample = None unit = None if self.timestamp: self.print_timestamp(self.timestamp) self.print_line_header(key[0], key[1]) vlist = [] for cpuname in cpunames: if cpuname in node: cpu = node[cpuname] uval, unit, desc, sample, bn, below, idle = cpu v = uval.format_value() vlist.append(uval) write( "%*s%s " % (VALCOL_LEN, v, "?" if below else "*" if bn else " ")) else: write("%*s " % (VALCOL_LEN, "")) if unit: # XXX should move this to be per entry? cval = combine_uval(vlist) vs = (" +- " + cval.format_uncertainty() + " " + cval.format_mux()) if cval.stddev else "" write(" %-*s%s" % (self.unitlen, (" " if unit[0] != "%" else "") + unit, vs)) write("\n") self.print_desc(desc, sample) self.nodes = dict()
def flush(self): VALCOL_LEN = 14 write = self.logf.write cpunames = sorted(self.cpunames) if not self.printed_header: if self.timestamp: write("%9s" % "") self.print_header("", "") for j in cpunames: write("%*s " % (VALCOL_LEN, j)) write("\n") self.printed_header = True for key in sorted(sorted(self.nodes.keys(), key=lambda x: x[1]), key=lambda x: x[0] == ""): node = self.nodes[key] desc = None sample = None remark = None if self.timestamp: self.print_timestamp(self.timestamp) self.print_header(key[0], key[1]) vlist = [] for cpuname in cpunames: if cpuname in node: cpu = node[cpuname] uval, remark, desc, sample, bn = cpu v = uval.format_value() if bn: v += "*" if remark in ("above", "below", "Metric", "CoreMetric", "CoreClocks"): # XXX remark = "" vlist.append(uval) write("%*s " % (VALCOL_LEN, v)) else: write("%*s " % (VALCOL_LEN, "")) if remark: cval = combine_uval(vlist) vs = (" +- " + cval.format_uncertainty() + " " + cval.format_mux()) if cval.stddev else "" write(" %-*s%s" % (self.unitlen, remark, vs)) write("\n") self.print_desc(desc, sample) self.nodes = dict()
def flush(self): cpunames = sorted(self.cpunames) if not self.printed_header and not self.no_header: ts = ["Timestamp"] if self.timestamp else [] header = ts + ["Area", "Node"] + cpunames + [ "Description", "Sample", "Stddev", "Multiplex" ] self.writer[self.curname].writerow([x.encode() for x in header]) self.printed_header = True for key in sorted(sorted(self.nodes.keys(), key=lambda x: x[1]), key=lambda x: x[0] == ""): node = self.nodes[key] ts = [convert_ts(self.timestamp)] if self.timestamp else [] l = ts + [key[0], key[1]] vlist = [] ol = dict() desc, sample = "", "" for cpuname in cpunames: if cpuname in node: cpu = node[cpuname] if cpu[2]: desc = cpu[2] desc = re.sub(r"\s+", " ", desc) if cpu[3]: sample = cpu[3] # ignore unit for now vlist.append(cpu[0]) ol[cpuname] = float(cpu[0].value) if cpu[0].value else "" else: vlist.append(UVal("", 0)) l += [ol[x] if x in ol else "" for x in cpunames] l.append(desc) l.append(sample) vs = combine_uval(vlist) if vs: l += (vs.format_uncertainty().strip(), vs.format_mux().strip()) else: l += ["", ""] self.writer[self.curname].writerow(l) self.nodes = dict()