Author: waldi Date: Thu Jan 31 11:50:38 2008 New Revision: 10333 Log: * lib/dkt/hooks/interfaces.py: Remove old include. * lib/dkt/hooks/registry.py: Merge runner. * lib/dkt/hooks/runner.py: Remove.
Removed: people/waldi/dkt/lib/dkt/hooks/runner.py Modified: people/waldi/dkt/lib/dkt/hooks/interfaces.py people/waldi/dkt/lib/dkt/hooks/registry.py Modified: people/waldi/dkt/lib/dkt/hooks/interfaces.py ============================================================================== --- people/waldi/dkt/lib/dkt/hooks/interfaces.py (original) +++ people/waldi/dkt/lib/dkt/hooks/interfaces.py Thu Jan 31 11:50:38 2008 @@ -1,5 +1,4 @@ from dkt.interface import Interface, implements -import runner class IHook(Interface): pass Modified: people/waldi/dkt/lib/dkt/hooks/registry.py ============================================================================== --- people/waldi/dkt/lib/dkt/hooks/registry.py (original) +++ people/waldi/dkt/lib/dkt/hooks/registry.py Thu Jan 31 11:50:38 2008 @@ -18,18 +18,38 @@ i.add(module, interface, object, priority, predecessors, successors) self._interfaces[interface] = i - def run(self, interface, *args, **kw): - import interfaces, runner + def run(self, interface, func, *args, **kw): + import interfaces + + l = self._interfaces[interface].get() + if issubclass(interface, interfaces.IHookRunAll): - r = runner.RunAll + def runner(*args, **kw): + for i in l: + f = getattr(i.object, func) + f(*args, **kw) + elif issubclass(interface, interfaces.IHookRunAllArg): - r = runner.RunAllArg + def runner(arg1, *args, **kw): + for i in l: + f = getattr(i.object, func) + ret = f(arg1, *args, **kw) + if ret is not None: + arg1 = ret + return arg1 + elif issubclass(interface, interfaces.IHookRunFirst): - r = runner.RunFirst + def runner(*args, **kw): + for i in l: + f = getattr(i.object, func) + ret = f(*args, **kw) + if ret is not None: + return ret + else: raise RuntimeError - l = [i.object for i in self._interfaces[interface]._modules.itervalues()] - return r(l) + + return runner(*args, **kw) class Hook(object): def __init__(self, module, interface, object, priority, predecessors, successors): _______________________________________________ Kernel-svn-changes mailing list Kernel-svn-changes@lists.alioth.debian.org http://lists.alioth.debian.org/mailman/listinfo/kernel-svn-changes