def listener(instance, **kwargs): target = getattr_recursive(instance, target_attr) for h in self.applicables(binder, target): user = getattr_recursive(instance, user_attr) if obj_attr: obj = getattr_recursive(instance, obj_attr) else: obj = instance self.fire(user, obj)
def feed_listener(instance, **kwargs): if self.feeds_user(getattr_recursive(instance, attr)): self.fire(instance)