def register(self, handle): if self.parent: ins = Group(self.parent.grp, self.parent.parent) # Should avoid doing splitting and instead use the name given in decorator fname = self.f.__name__.split('_')[-1] setattr(ins, fname, partial(self.f, handle)) ins.register(handle) else: setattr(handle, self.f.__name__, partial(self.f, handle))
def __init__(self): for name, cmd_handle in Handle._cmds.iteritems(): print name, type(cmd_handle), id(cmd_handle) setattr(self, name, partial(cmd_handle, self)) for name, ns_handle in Handle._ns.iteritems(): print name, type(ns_handle), id(ns_handle) setattr(self, name, ns_handle) ns_handle.register(self)
def register(self, handle): for name, cmd_handle in NSCommand._cmds.iteritems(): print name, type(cmd_handle), id(cmd_handle) setattr(self, name, partial(cmd_handle, handle))
def wrapped_fn(self, *args, **kwargs): if args: return method(self, *args, **kwargs) else: return partial(wrapped_fn, self, **kwargs)