def call(self, event_name, **kw): event = AttributeDict(kw) f = getattr(self, event_name, None) if f is None: return event.result = f(event) return event
def call(self, event_name, **kw): try: handlers = self.cached_calls[event_name] except KeyError: handlers = [] for script in self.items.values(): f = getattr(script, event_name, None) if not f: continue handlers.append(f) self.cached_calls[event_name] = handlers event = AttributeDict(kw) for handler in handlers: ret = handler(event) if ret is None: continue event.result = ret break else: event.result = None return event