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)" \
"""
l=["%s >>> Pipeline %s" % (prefix, self.name)]
for pri, name, fun in self.pipe:
- l.append("%s% 3d %s, %s" % (prefix, pri, name, fun))
+ l.append("%s% 3d %s" % (prefix, pri, name))
return l
def run(self, *args, **kwargs):