aboutsummaryrefslogtreecommitdiffstats
path: root/parse/tuple_table.py
diff options
context:
space:
mode:
authorJonathan Herman <hermanjl@cs.unc.edu>2013-02-07 17:53:35 -0500
committerJonathan Herman <hermanjl@cs.unc.edu>2013-02-07 17:53:35 -0500
commit063f5bc4b78a8368054c7e11c5fe177aafc4e28d (patch)
treefdf7c792f68ab310cbd40e9d76aed8d9e2a18b79 /parse/tuple_table.py
parent39020cf5ae3030bc15035925a0c72eb44eea67b7 (diff)
Removed measurement logic from DirMap's for simpler processing.
Diffstat (limited to 'parse/tuple_table.py')
-rw-r--r--parse/tuple_table.py39
1 files changed, 32 insertions, 7 deletions
diff --git a/parse/tuple_table.py b/parse/tuple_table.py
index 86006d2..a00e8ad 100644
--- a/parse/tuple_table.py
+++ b/parse/tuple_table.py
@@ -28,6 +28,8 @@ class ColMap(object):
28 return str(val).replace("_", "-").replace("=", "-") 28 return str(val).replace("_", "-").replace("=", "-")
29 vals = [] 29 vals = []
30 for key in self.col_list: 30 for key in self.col_list:
31 if key not in kv:
32 continue
31 k, v = escape(key), escape(kv[key]) 33 k, v = escape(key), escape(kv[key])
32 vals += ["%s=%s" % (k, v)] 34 vals += ["%s=%s" % (k, v)]
33 return "_".join(vals) 35 return "_".join(vals)
@@ -116,8 +118,30 @@ class TupleTable(object):
116 with open(out_map, 'wc') as map_file: 118 with open(out_map, 'wc') as map_file:
117 pprint(result,stream=map_file, width=20) 119 pprint(result,stream=map_file, width=20)
118 120
119 def write_csvs(self, out_dir): 121
120 dir_map = DirMap(out_dir) 122 def __add_to_dirmap(self, dir_map, variable, kv, point):
123 value = kv.pop(variable)
124
125 for stat in point.get_stats():
126 summary = point[stat]
127
128 for summary_type in Type:
129 measurement = summary[summary_type]
130
131 for base_type in Type:
132 if not base_type in measurement:
133 continue
134 # Ex: release/num_tasks/measured-max/avg/x=5.csv
135 leaf = self.col_map.get_encoding(kv) + ".csv"
136 path = [ stat, variable, "taskset-" + base_type, summary_type, leaf ]
137 result = measurement[base_type]
138
139 dir_map.add_value(path, (value, result))
140
141 kv[variable] = value
142
143 def to_dir_map(self):
144 dir_map = DirMap()
121 145
122 for key, point in self.table.iteritems(): 146 for key, point in self.table.iteritems():
123 kv = self.col_map.get_map(key) 147 kv = self.col_map.get_map(key)
@@ -128,12 +152,13 @@ class TupleTable(object):
128 try: 152 try:
129 float(val) 153 float(val)
130 except: 154 except:
131 # Only vary numbers. Otherwise, just have seperate lines 155 # Only vary numbers. Otherwise, just have seperate files
132 continue 156 continue
133 157
134 kv.pop(col) 158 self.__add_to_dirmap(dir_map, col, kv, point)
135 dir_map.add_point(col, val, kv, point)
136 kv[col] = val
137 159
138 dir_map.reduce() 160 dir_map.reduce()
139 dir_map.write() 161 return dir_map
162
163 def from_dir_map(dir_map):
164 pass