]> mj.ucw.cz Git - eval.git/commitdiff
Implemented configuration overrides from the command line
authorMartin Mares <mj@ucw.cz>
Sun, 9 Aug 2009 22:05:14 +0000 (00:05 +0200)
committerMartin Mares <mj@ucw.cz>
Sun, 9 Aug 2009 22:05:14 +0000 (00:05 +0200)
t/moe/config.py
t/moe/eval.py
t/test.py

index 99d36f3cb5fa853ebc79e6e48358cc82f05d9c2a..ec0ad5048ee8f1df90489f960b29b054315aac1b 100644 (file)
@@ -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
index 42f5bda6dfe3f1e1b98613f2ffc4a5a9936d5167..9c9f5acf43e320ad04a6812d4209888baa8a5a7c 100644 (file)
@@ -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']
index 005ba39f77ee16455f57e24d40db30a0feb4efbc..122d85031584f2f3cd0c7d0520f0cee7229736a4 100755 (executable)
--- 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()