def mainthread_transform(r): if r == None: return None output = Struct() for i in r.mainthread_readbytes: output[literal_field(i[1])].name = i[1] output[literal_field(i[1])].readbytes = i[0] r.mainthread_readbytes = None for i in r.mainthread_writebytes: output[literal_field(i[1])].name = i[1] output[literal_field(i[1])].writebytes = i[0] r.mainthread_writebytes = None for i in r.mainthread_readcount: output[literal_field(i[1])].name = i[1] output[literal_field(i[1])].readcount = i[0] r.mainthread_readcount = None for i in r.mainthread_writecount: output[literal_field(i[1])].name = i[1] output[literal_field(i[1])].writecount = i[0] r.mainthread_writecount = None r.mainthread = output.values()
def geo_mean(values): """ GIVEN AN ARRAY OF dicts, CALC THE GEO-MEAN ON EACH ATTRIBUTE """ agg = Struct() for d in values: for k, v in d.items(): if v != 0: agg[k] = nvl(agg[k], ZeroMoment.new_instance()) + Math.log(Math.abs(v)) return {k: Math.exp(v.stats.mean) for k, v in agg.items()}
def stats(values): """ RETURN LOTS OF AGGREGATES """ if values == None: return None values = values.map(float, includeNone=False) z = ZeroMoment.new_instance(values) s = Struct() for k, v in z.dict.items(): s[k] = v for k, v in ZeroMoment2Stats(z).items(): s[k] = v s.max = MAX(values) s.min = MIN(values) s.median = pyLibrary.stats.median(values, simple=False) s.last = values.last() s.first = values[0] if Math.is_number(s.variance) and not Math.is_nan(s.variance): s.std = sqrt(s.variance) return s