8 class MoePipeError(Exception):
9 """Failure of the MoePipeline."""
14 def __init__(self, name):
19 def insert(self, pri, name, fun):
20 triple = (pri,name,fun)
21 pos = bisect.bisect(self.pipe, triple)
23 raise MoePipeError, "Pipeline insert cannot alter the past"
24 self.pipe.insert(pos, triple)
26 def dump(self, file=sys.stdout):
27 file.write(">>> Pipeline %s\n" % self.name)
28 for pri,name,fun in self.pipe:
29 file.write("%03d %s\n" % (pri,name))
33 while self.index < len(self.pipe):
34 (pri,name,fun) = self.pipe[self.index]
35 moe.log.verbose(">> Running %s:%s\n" % (self.name,name))
40 def add_hook(self, name):
41 modname = "moe.hooks." + name
42 moe.log.verbose(">> Loading hook %s\n" % name)
43 if not sys.modules.has_key(modname):
44 ## FIXME: Configuration variable for the hook directory?
46 fp, path, desc = imp.find_module(name, ["moe/hooks"])
48 raise MoePipeError, "Cannot find hook module " + modname
50 imp.load_module(modname, fp, path, desc)
53 sys.modules[modname].init(self)
55 def configure(self, names):
56 for name in names.split():