#!/usr/bin/env python import sys from plot import decode from os.path import splitext, basename from glob import glob from collections import defaultdict #G-EDF/testpoint_ucap=13.75_wss=1792_dist=exp-10-10-100_deadlines=implicit_host=ludwig_scheduler=G-EDF.csv def key(fname): name, ext = splitext(basename(fname)) conf = decode(name) if 'quanta' in conf: q = '_quanta=%s' % conf['quanta'] else: q = '' s = 'scheduler=%s' % conf['scheduler'] d = 'dist=%s' % conf['dist'] dl = 'deadlines=%s' % conf['deadlines'] h = 'host=%s' % conf['host'] return '_'.join([d, dl, s, h]) + q def assemble_results(dir): files = glob(dir + '/*.csv') parts = defaultdict(list) for f in files: k = key(f) parts[k].append(f) for i, k in enumerate(parts): comment = 1 print '[%d/%d] Processing %s' % (i+ 1, len(parts), k) out = open('sched_%s.csv' % k, 'w') for f in sorted(parts[k]): for line in open(f): if line[0] != '#' or comment: out.write(line) if line[0] == '#': comment -= 1 out.close() if __name__ == '__main__': for d in sys.argv[1:]: assemble_results(d)