Пример #1
0
    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()
Пример #2
0
    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()
Пример #3
0
 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()