From a2c93e8a56860b3fb2c59a749ac06eaa091add39 Mon Sep 17 00:00:00 2001 From: Andreas Kloeckner <inform@tiker.net> Date: Thu, 30 Apr 2009 03:14:15 -0400 Subject: [PATCH] Add quantity renaming to runalyzer-gather. --- bin/runalyzer-gather | 46 +++++++++++++++++++++++++++++--------------- 1 file changed, 31 insertions(+), 15 deletions(-) diff --git a/bin/runalyzer-gather b/bin/runalyzer-gather index 9862426..86e8582 100644 --- a/bin/runalyzer-gather +++ b/bin/runalyzer-gather @@ -146,6 +146,24 @@ class FeatureGatherer: +def make_name_map(map_str): + import re + result = {} + + if not map_str: + return result + + map_re = re.compile(r"^([a-z_A-Z0-9]+)=([a-z_A-Z0-9]+)$") + for fmap_entry in map_str.split(","): + match = map_re.match(fmap_entry) + assert match is not None + result[match.group(1)] = match.group(2) + + return result + + + + def main(): import sys from optparse import OptionParser @@ -162,6 +180,9 @@ def main(): parser.add_option("-m", "--feature-map", default=None, help="Specify a feature name map.", metavar="F1=FNAME1,F2=FNAME2") + parser.add_option("-q", "--quantity-map", default=None, + help="Specify a quantity name map.", + metavar="Q1=QNAME1,Q2=QNAME2") options, args = parser.parse_args() if len(args) < 2: @@ -175,15 +196,8 @@ def main(): fg = FeatureGatherer(options.dir_features, options.file_features) features = fg.gather_feature_types(infiles) - fmap = {} - if options.feature_map: - import re - - featmap_re = re.compile(r"^([a-z_A-Z0-9]+)=([a-z_A-Z0-9]+)$") - for fmap_entry in options.feature_map.split(","): - match = featmap_re.match(fmap_entry) - assert match is not None - fmap[match.group(1)] = match.group(2) + fmap = make_name_map(options.feature_map) + qmap = make_name_map(options.quantity_map) if options.show_features: for feat_name, feat_type in features.iteritems(): @@ -227,13 +241,15 @@ def main(): from pytools.log import LogManager logmgr = LogManager(dbname, "r") for qname, qdat in logmgr.quantity_data.iteritems(): - if not qname in created_tables: - created_tables.add(qname) + tgt_qname = qmap.get(qname, qname) + + if not tgt_qname in created_tables: + created_tables.add(tgt_qname) db_conn.execute("create table %s (" - "run_id integer, step integer, rank integer, value real)" % qname) + "run_id integer, step integer, rank integer, value real)" % tgt_qname) db_conn.execute("create index %s_main on %s (run_id,step,rank)" % ( - qname, qname)) + tgt_qname, tgt_qname)) agg = qdat.default_aggregator try: @@ -245,11 +261,11 @@ def main(): db_conn.execute("insert into quantities " "(name,unit,description,rank_aggregator)" "values (?,?,?,?)", - (qname, qdat.unit, qdat.description, agg)) + (tgt_qname, qdat.unit, qdat.description, agg)) cursor = logmgr.db_conn.execute("select %s,step,rank,value from %s" % ( run_id, qname)) - db_conn.executemany("insert into %s values (?,?,?,?)" % qname, + db_conn.executemany("insert into %s values (?,?,?,?)" % tgt_qname, cursor) logmgr.close() pb.finished() -- GitLab