]> mj.ucw.cz Git - moe.git/blobdiff - t/moe/pipeline.py
Added function config_escape
[moe.git] / t / moe / pipeline.py
index bffca80ffc408e4a900a9c1835b3fe504bdfc3d9..1b2d98a581fbf9e24a94120e273ec27a5d520900 100644 (file)
@@ -22,11 +22,20 @@ class Pipeline:
        self.name = name
        self.skip_to = skip_to
 
-    def insert(self, pri, name, fun):
-       "Insert callable `fun` to time `pri`, `name` is only informative."
+    def insert(self, pri, fun, desc='', name=None):
+       """Insert callable `fun` to time `pri`, 
+       `desc` is optional description, 
+       `name` is the "module.function" name, guessed by default.
+       """
        assert(isinstance(pri, int))
        assert(callable(fun))
-       triple = (pri, name, fun)
+       if name is None:
+           name = fun.__module__ + '.' + fun.__name__
+       if desc:
+           desc += ' '
+       desc += '[' + name + ']'
+
+       triple = (pri, desc, fun)
        pos = bisect.bisect(self.pipe, triple)
        if pos <= self.index:
            raise MoePipeError, "Pipeline %r at time %d: Insert cannot alter the past (time %d)" \
@@ -38,9 +47,10 @@ class Pipeline:
        Debugging dump of the pipe.
        Returns a list of lines.
        """
-       l=["%s >>> Pipeline %s\n" % (prefix, self.name)]
+       l=["%s >>> Pipeline %s" % (prefix, self.name)]
        for pri, name, fun in self.pipe:
-           l.append("%s% 3d %s, %s\n" % (prefix, pri, name, fun))
+           l.append("%s% 3d %s" % (prefix, pri, name))
+       return l
 
     def run(self, *args, **kwargs):
        self.index = 0
@@ -48,14 +58,14 @@ class Pipeline:
        while self.index < len(self.pipe):
            (pri,name,fun) = self.pipe[self.index]
            if pri >= min_pri:
-               self.e.log.debug("Pipeline %r:%d running: %s\n" % (self.name, pri, name))
+               self.e.log.debug("Pipeline %r:%d running: %s" % (self.name, pri, name))
                try:
                    fun(*args, **kwargs)
                except MoeAbortPipeline, err:
                    min_pri = self.skip_to
            else:
-               self.e.log.debug("Pipeline %r:d skipping: %s\n" % (self.name, pri, name))
+               self.e.log.debug("Pipeline %r:d skipping: %s" % (self.name, pri, name))
            self.index += 1
        self.index = -1
-       self.e.log.debug("Pipeline %r finished\n" % (self.name))
+       self.e.log.debug("Pipeline %r finished" % (self.name))