def __init__(self, callback, plugin, engine, shotgun, matchEvents=None, args=None, stopOnError=True):
    '\n        @param callback: The function to run when a Shotgun event occurs.\n        @type callback: A function object.\n        @param engine: The engine that will dispatch to this callback.\n        @type engine: L{Engine}.\n        @param shotgun: The Shotgun instance that will be used to communicate\n            with your Shotgun server.\n        @type shotgun: L{sg.Shotgun}\n        @param matchEvents: The event filter to match events against before invoking callback.\n        @type matchEvents: dict\n        @param args: Any datastructure you would like to be passed to your\n            callback function. Defaults to None.\n        @type args: Any object.\n\n        @raise TypeError: If the callback is not a callable object.\n        '
    if (not callable(callback)):
        raise TypeError('The callback must be a callable object (function, method or callable class instance).')
    self._name = None
    self._shotgun = shotgun
    self._callback = callback
    self._engine = engine
    self._logger = None
    self._matchEvents = matchEvents
    self._args = args
    self._stopOnError = stopOnError
    self._active = True
    if hasattr(callback, '__name__'):
        self._name = callback.__name__
    elif (hasattr(callback, '__class__') and hasattr(callback, '__call__')):
        self._name = ('%s_%s' % (callback.__class__.__name__, hex(id(callback))))
    else:
        raise ValueError('registerCallback should be called with a function or a callable object instance as callback argument.')
    self._logger = logging.getLogger(((plugin.logger.name + '.') + self._name))
    self._logger.config = self._engine.config
@param callback: The function to run when a Shotgun event occurs.
@type callback: A function object.
@param engine: The engine that will dispatch to this callback.
@type engine: L{Engine}.
@param shotgun: The Shotgun instance that will be used to communicate
    with your Shotgun server.
@type shotgun: L{sg.Shotgun}
@param matchEvents: The event filter to match events against before invoking callback.
@type matchEvents: dict
@param args: Any datastructure you would like to be passed to your
    callback function. Defaults to None.
@type args: Any object.

@raise TypeError: If the callback is not a callable object.
def __init__(self, callback, plugin, engine, shotgun, matchEvents=None, args=None, stopOnError=True):
    '\n        @param callback: The function to run when a Shotgun event occurs.\n        @type callback: A function object.\n        @param engine: The engine that will dispatch to this callback.\n        @type engine: L{Engine}.\n        @param shotgun: The Shotgun instance that will be used to communicate\n            with your Shotgun server.\n        @type shotgun: L{sg.Shotgun}\n        @param matchEvents: The event filter to match events against before invoking callback.\n        @type matchEvents: dict\n        @param args: Any datastructure you would like to be passed to your\n            callback function. Defaults to None.\n        @type args: Any object.\n\n        @raise TypeError: If the callback is not a callable object.\n        '
    if (not callable(callback)):
        raise TypeError('The callback must be a callable object (function, method or callable class instance).')
    self._name = None
    self._shotgun = shotgun
    self._callback = callback
    self._engine = engine
    self._logger = None
    self._matchEvents = matchEvents
    self._args = args
    self._stopOnError = stopOnError
    self._active = True
    if hasattr(callback, '__name__'):
        self._name = callback.__name__
    elif (hasattr(callback, '__class__') and hasattr(callback, '__call__')):
        self._name = ('%s_%s' % (callback.__class__.__name__, hex(id(callback))))
    else:
        raise ValueError('registerCallback should be called with a function or a callable object instance as callback argument.')
    self._logger = logging.getLogger(((plugin.logger.name + '.') + self._name))
    self._logger.config = self._engine.config