Example #1
0
    def fire(self, *events):
        '''
        run calls bound to `events` **NOW**

        @param events: event labels
        '''
        try:
            # clear scratch queue
            self._sclear()
            # queue global and local bound callables
            self._sxtend(self._events(*events))
            # run event call chain until scratch queue is exhausted
            self.outextend(c() for c in iterexcept(
                self._scratch.popleft, IndexError,
            ))
        finally:
            # clear scratch queue
            self._sclear()
        return self
Example #2
0
 def commit(self):
     '''consume call chain until exhausted'''
     self.outextend(c() for c in iterexcept(self._cpopleft, IndexError))
     return self