]> mj.ucw.cz Git - eval.git/blobdiff - t/moe/pipeline.py
Batch task testing works (sort of)
[eval.git] / t / moe / pipeline.py
index bc407a2e18cc21c47e5547b5a59dcb11c3c1e4ae..11d809d64bd1d378f3a82bff62b05457ca1f7ee7 100644 (file)
@@ -9,6 +9,11 @@ import moe.log
 class MoePipeError(moe.MoeErr):
     """Failure of the MoePipeline."""
 
+class MoeAbortPipeline(Exception):
+
+    def __init__(self, skip_to=999):
+       self.skip_to = skip_to
+
 class MoePipeline:
     """Moe pipeline."""
 
@@ -31,10 +36,17 @@ class MoePipeline:
 
     def run(self, *args):
        self.index = 0
+       min_pri = -1
        while self.index < len(self.pipe):
            (pri,name,fun) = self.pipe[self.index]
-           moe.log.default.verbose(">> Running %s:%s\n" % (self.name,name))
-           fun(*args)
+           if pri >= min_pri:
+               moe.log.default.verbose(">> Running %s:%s\n" % (self.name,name))
+               try:
+                   fun(*args)
+               except MoeAbortPipeline, err:
+                   min_pri = err.skip_to
+           else:
+               moe.log.default.verbose(">> Skipping %s:%s\n" % (self.name,name))
            self.index += 1
        self.index = -1