def main(): cmdlineparser = argparse.ArgumentParser(description = 'BonnieSample Parser', prog = 'BonnieSample') cmdlineparser.add_argument('db', nargs='+') ns = cmdlineparser.parse_args(sys.argv[1:]) if len(ns.db) != 2: print('Usages') db0 = get_samples_in_dir(ns.db[0]) db1 = get_samples_in_dir(ns.db[1]) for t in db0: t.parse() for t in db1: t.parse() #print(type(NamedTree.operator.average)) #average0 = NamedTree.operator.average(*db0) #average0.set_name(os.path.basename(ns.db[0])) group0 = NamedTreeGroup(*db0) average0 = group0.average() average0.name = os.path.basename(ns.db[0]) #average1 = NamedTree.operator.average(*db1) #average1.set_name(os.path.basename(ns.db[1])) group1 = NamedTreeGroup(*db1) average1 = group1.average() average1.name = os.path.basename(ns.db[1]) diff_ratio = NamedTree.Operator.diff_ratio(average0, average1) #union = NamedTree.operator.union(average0, average1, diff_ratio) #NamedTree.painter.single(union) ngroup = BonnieSampleGroup(average0, average1, diff_ratio) #ngroup.painter = NamedTreePainter(info) ngroup.pnt_result()
def main(): cmdlineparser = argparse.ArgumentParser(description = 'Sample Parser', prog = 'Sample') cmdlineparser.add_argument('db', nargs='+') #TODO a universal command line ns = cmdlineparser.parse_args(sys.argv[1:]) if len(ns.db) < 0: print('Usages') exit() average_list = [] for db in ns.db: DB = ctcs2.LogDB(db) db = DB.samples('qa_iozone_4-32G', 'qa_iozone_4-32G', IOzoneSample) if len(db) == 0: log.warning('[IOzone] There is no log files from %s' % ns.db[0]) continue for t in db: t.parse_default() group = NamedTreeGroup(*db) average = group.average() average.name = DB.name average_list.append(average) def note_over_10_percent (v_list): if v_list[0] < -0.1: return '***' else: return ' ' a_iter = iter(average_list) r_base = next(a_iter) r_list = list() r_list.append(r_base) spec_end = {r_base.name:'.0f'} field_suffix = {} while True: try: r_this = next(a_iter) except StopIteration: break else: r_diff_ratio = NamedTree.Operator.diff_ratio(r_base, r_this) r_diff_ratio_percent = NamedTree.Operator.scale_multiply(r_diff_ratio, scale = 100) r_diff_ratio_percent.name = 'Fluctuation' r_diff_ratio_note = NamedTree.Operator.user_defined(r_diff_ratio, cb_func = note_over_10_percent) r_diff_ratio_note.name = 'ratio_note' spec_end[r_this.name] = '.0f' spec_end[r_diff_ratio_percent.name] = '.2f' spec_end[r_diff_ratio_note.name] = 's' field_suffix[r_diff_ratio_percent.name] = " %" r_list.append(r_this) r_list.append(r_diff_ratio_percent) r_list.append(r_diff_ratio_note) ngroup = NamedTreeGroup(*r_list) ngroup.leaf_render.set_field_format_spec_end(**spec_end) ngroup.leaf_render.set_field_suffix(**field_suffix) ngroup.leaf_print()