def chain(self, call, key=False, *args, **kw): ''' add `call` or appspaced `call` to call chain, partializing it with any passed arguments @param call: call or appspaced call label @param key: appspace key (default: False) ''' if not isstring(call): call = partial(call, *(key,) + args, **kw) else: call = partial(self.M.get(call, key), *args, **kw) self._cappend(call) return self
def tap(self, call, key=False): ''' add call @param call: callable or appspace label @param key: link call chain key (default: False) ''' # reset postitional arguments self._args = () # reset keyword arguments self._kw = {} # set current application self._call = self._M.get(call, key) if isstring(call) else call return self