def _resolve_plugin_function(fn_setting, default_fn): fn_path = getattr(settings, fn_setting, None) if fn_path is None: return default_fn return get_function_by_path(fn_path)
def handle_event(event_id): event = _lookup_and_assign_handler(event_id) if event is None: return event.handled_at = now() try: handler = get_function_by_path(event.handled_by) except Exception as e: event.handler_succeeded = False event.handler_log =\ 'Exception loading function %s: %s' % (event.handled_by, str(e)) else: try: handler(event) except Exception as e: event.handler_succeeded = False event.handler_log =\ 'Unhandled exception thrown by %s: %s'\ % (event.handled_by, str(e)) event.save()