aboutsummaryrefslogtreecommitdiffstats
path: root/gen_exps.py
diff options
context:
space:
mode:
authorJonathan Herman <hermanjl@cs.unc.edu>2013-04-08 16:42:43 -0400
committerJonathan Herman <hermanjl@cs.unc.edu>2013-04-08 16:42:43 -0400
commit40df618c33f56fcdcbc9afc1f4b963e7dfe23a10 (patch)
tree2a58d482d3fdf8d8dcdd1aaa3ecd9def7a803a09 /gen_exps.py
parent2ddd4b06389b7dde8c8fbb43b19b23fde5c40b22 (diff)
Create generator map in gen/__init__.py.
Diffstat (limited to 'gen_exps.py')
-rwxr-xr-xgen_exps.py28
1 files changed, 13 insertions, 15 deletions
diff --git a/gen_exps.py b/gen_exps.py
index 8688ae9..6488cdc 100755
--- a/gen_exps.py
+++ b/gen_exps.py
@@ -1,18 +1,14 @@
1#!/usr/bin/env python 1#!/usr/bin/env python
2from __future__ import print_function 2from __future__ import print_function
3 3
4import gen.generator as gen
4import os 5import os
5import re 6import re
6import shutil as sh 7import shutil as sh
8import sys
7 9
8from gen.edf_generators import GedfGenerator,PedfGenerator,CedfGenerator
9from optparse import OptionParser 10from optparse import OptionParser
10 11
11# There has to be a better way to do this...
12GENERATORS = {'C-EDF':CedfGenerator,
13 'P-EDF':PedfGenerator,
14 'G-EDF':GedfGenerator}
15
16def parse_args(): 12def parse_args():
17 parser = OptionParser("usage: %prog [options] [files...] " 13 parser = OptionParser("usage: %prog [options] [files...] "
18 "[generators...] [param=val[,val]...]") 14 "[generators...] [param=val[,val]...]")
@@ -51,13 +47,14 @@ def main():
51 47
52 # Print generator information on the command line 48 # Print generator information on the command line
53 if opts.list_gens: 49 if opts.list_gens:
54 print(", ".join(GENERATORS.keys())) 50 print(", ".join(gen.get_generators()))
55 if opts.described != None: 51 if opts.described != None:
56 for generator in opts.described.split(','): 52 for generator in opts.described.split(','):
57 if generator not in GENERATORS: 53 if generator not in gen.get_generators():
58 print("No generator '%s'" % generator) 54 print("No generator '%s'" % generator)
59 else: 55 else:
60 GENERATORS[generator]().print_help() 56 sys.stdout.write("Generator '%s', " % generator)
57 gen.get_generators()[generator]().print_help()
61 if opts.list_gens or opts.described: 58 if opts.list_gens or opts.described:
62 return 0 59 return 0
63 60
@@ -65,10 +62,9 @@ def main():
65 62
66 # Ensure some generator is loaded 63 # Ensure some generator is loaded
67 args = list(set(args) - set(params)) 64 args = list(set(args) - set(params))
68 #TODO: get every loaded plugin, try and use that generator 65 args = args or gen.get_generators().keys()
69 args = args or ['C-EDF', 'G-EDF', 'P-EDF']
70 66
71 # Split into files to load, named generators 67 # Split into files to load and named generators
72 files = filter(os.path.exists, args) 68 files = filter(os.path.exists, args)
73 gen_list = list(set(args) - set(files)) 69 gen_list = list(set(args) - set(files))
74 70
@@ -86,13 +82,15 @@ def main():
86 os.mkdir(opts.out_dir) 82 os.mkdir(opts.out_dir)
87 83
88 for gen_name, gen_params in exp_sets: 84 for gen_name, gen_params in exp_sets:
89 if gen_name not in GENERATORS: 85 if gen_name not in gen.get_generators():
90 raise ValueError("Invalid generator name: %s" % gen_name) 86 raise ValueError("Invalid generator '%s'" % gen_name)
91 87
92 print("Creating experiments using %s generator..." % gen_name) 88 print("Creating experiments using %s generator..." % gen_name)
93 89
94 params = dict(gen_params.items() + global_params.items()) 90 params = dict(gen_params.items() + global_params.items())
95 generator = GENERATORS[gen_name](params=params) 91 clazz = gen.get_generators()[gen_name]
92
93 generator = clazz(params=params)
96 94
97 generator.create_exps(opts.out_dir, opts.force, opts.trials) 95 generator.create_exps(opts.out_dir, opts.force, opts.trials)
98 96