From 88400af6b7fea634c88d2d9b8ff1eed13a9744ff Mon Sep 17 00:00:00 2001 From: Martin Mares Date: Mon, 10 Aug 2009 00:05:14 +0200 Subject: [PATCH] Implemented configuration overrides from the command line --- t/moe/config.py | 10 ++++++++++ t/moe/eval.py | 9 +++++---- t/test.py | 21 +++++++++++++++++---- 3 files changed, 32 insertions(+), 8 deletions(-) diff --git a/t/moe/config.py b/t/moe/config.py index 99d36f3..ec0ad50 100644 --- a/t/moe/config.py +++ b/t/moe/config.py @@ -204,3 +204,13 @@ class MoeConfigStack: newstk.append(cfg) self.stk = newstk self.reset_cache() + +def parse_overrides(argv): + cfg = None + argv0 = argv.pop(0) + while len(argv) > 0 and argv[0].find("=") >= 0: + if cfg is None: + cfg = MoeConfig() + cfg.parse_line(argv.pop(0)) + argv.insert(0, argv0) + return cfg diff --git a/t/moe/eval.py b/t/moe/eval.py index 42f5bda..9c9f5ac 100644 --- a/t/moe/eval.py +++ b/t/moe/eval.py @@ -22,16 +22,17 @@ class Eval: self.meta = moe.meta.MoeMeta() pass - def init(self): - self.init_global() - ## FIXME: Configuration overrides + def init(self, overrides=None): + self.init_global(overrides) self.init_test() ## FIXME: Initialize logging early on self.init_task() - def init_global(self): + def init_global(self, overrides): main_cfg = moe.config.MoeConfig(name = os.path.join(self.cfgs['HOME'], "config")) self.cfgs.push(main_cfg) + if overrides: + self.cfgs.push(overrides) def init_test(self): test = self.cfgs['TEST_DIR'] diff --git a/t/test.py b/t/test.py index 005ba39..122d850 100755 --- a/t/test.py +++ b/t/test.py @@ -9,16 +9,29 @@ import moe.eval import moe.pipeline import moe.batch +overrides = moe.config.parse_overrides(sys.argv) + e = moe.eval.Eval() e.builtins.set("HOME", ".") e.builtins.set("TASK", "sum") -e.builtins.set("CONTESTANT", "somebody") -e.init() +e.builtins.set("CONTESTANT", "mj") +e.init(overrides) -print "Task configuration:" +print "\nTask configuration:" e.cfgs.dump() print -moe.batch.locate(e) +if len(sys.argv) > 1: + file = sys.argv[1] +else: + file = None +moe.batch.locate(e, file) + +print "\nConfiguration after per-extension overrides:" +e.cfgs.dump() +print e.run() + +print "\nFinal meta file:" +e.meta.write() -- 2.39.2