diff options
author | Jonathan Herman <hermanjl@cs.unc.edu> | 2013-04-08 16:42:43 -0400 |
---|---|---|
committer | Jonathan Herman <hermanjl@cs.unc.edu> | 2013-04-08 16:42:43 -0400 |
commit | 40df618c33f56fcdcbc9afc1f4b963e7dfe23a10 (patch) | |
tree | 2a58d482d3fdf8d8dcdd1aaa3ecd9def7a803a09 /gen_exps.py | |
parent | 2ddd4b06389b7dde8c8fbb43b19b23fde5c40b22 (diff) |
Create generator map in gen/__init__.py.
Diffstat (limited to 'gen_exps.py')
-rwxr-xr-x | gen_exps.py | 28 |
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 |
2 | from __future__ import print_function | 2 | from __future__ import print_function |
3 | 3 | ||
4 | import gen.generator as gen | ||
4 | import os | 5 | import os |
5 | import re | 6 | import re |
6 | import shutil as sh | 7 | import shutil as sh |
8 | import sys | ||
7 | 9 | ||
8 | from gen.edf_generators import GedfGenerator,PedfGenerator,CedfGenerator | ||
9 | from optparse import OptionParser | 10 | from optparse import OptionParser |
10 | 11 | ||
11 | # There has to be a better way to do this... | ||
12 | GENERATORS = {'C-EDF':CedfGenerator, | ||
13 | 'P-EDF':PedfGenerator, | ||
14 | 'G-EDF':GedfGenerator} | ||
15 | |||
16 | def parse_args(): | 12 | def 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 | ||