def process(self, event):
    '\n        Process an event with the callback object supplied on initialization.\n\n        If an error occurs, it will be logged appropriately and the callback\n        will be deactivated.\n\n        @param event: The Shotgun event to process.\n        @type event: I{dict}\n        '
    if self._engine._use_session_uuid:
        self._shotgun.set_session_uuid(event['session_uuid'])
    if self._engine.timing_logger:
        start_time = datetime.datetime.now(SG_TIMEZONE.local)
    try:
        self._callback(self._shotgun, self._logger, event, self._args)
        error = False
    except:
        error = True
        tb = sys.exc_info()[2]
        stack = []
        while tb:
            stack.append(tb.tb_frame)
            tb = tb.tb_next
        msg = 'An error occured processing an event.\n\n%s\n\nLocal variables at outer most frame in plugin:\n\n%s'
        self._logger.critical(msg, traceback.format_exc(), pprint.pformat(stack[1].f_locals))
        if self._stopOnError:
            self._active = False
    if self._engine.timing_logger:
        callback_name = self._logger.name.replace('plugin.', '')
        end_time = datetime.datetime.now(SG_TIMEZONE.local)
        duration = self._prettyTimeDeltaFormat((end_time - start_time))
        delay = self._prettyTimeDeltaFormat((start_time - event['created_at']))
        msg_format = 'event_id=%d created_at=%s callback=%s start=%s end=%s duration=%s error=%s delay=%s'
        data = [event['id'], event['created_at'].isoformat(), callback_name, start_time.isoformat(), end_time.isoformat(), duration, str(error), delay]
        self._engine.timing_logger.info(msg_format, *data)
    return self._active
Process an event with the callback object supplied on initialization.

If an error occurs, it will be logged appropriately and the callback
will be deactivated.

@param event: The Shotgun event to process.
@type event: I{dict}
def process(self, event):
    '\n        Process an event with the callback object supplied on initialization.\n\n        If an error occurs, it will be logged appropriately and the callback\n        will be deactivated.\n\n        @param event: The Shotgun event to process.\n        @type event: I{dict}\n        '
    if self._engine._use_session_uuid:
        self._shotgun.set_session_uuid(event['session_uuid'])
    if self._engine.timing_logger:
        start_time = datetime.datetime.now(SG_TIMEZONE.local)
    try:
        self._callback(self._shotgun, self._logger, event, self._args)
        error = False
    except:
        error = True
        tb = sys.exc_info()[2]
        stack = []
        while tb:
            stack.append(tb.tb_frame)
            tb = tb.tb_next
        msg = 'An error occured processing an event.\n\n%s\n\nLocal variables at outer most frame in plugin:\n\n%s'
        self._logger.critical(msg, traceback.format_exc(), pprint.pformat(stack[1].f_locals))
        if self._stopOnError:
            self._active = False
    if self._engine.timing_logger:
        callback_name = self._logger.name.replace('plugin.', )
        end_time = datetime.datetime.now(SG_TIMEZONE.local)
        duration = self._prettyTimeDeltaFormat((end_time - start_time))
        delay = self._prettyTimeDeltaFormat((start_time - event['created_at']))
        msg_format = 'event_id=%d created_at=%s callback=%s start=%s end=%s duration=%s error=%s delay=%s'
        data = [event['id'], event['created_at'].isoformat(), callback_name, start_time.isoformat(), end_time.isoformat(), duration, str(error), delay]
        self._engine.timing_logger.info(msg_format, *data)
    return self._active