'Call all registered callbacks.
The passed arguments are event specific and augment and override
the callback specific arguments as described above.
@note: Exceptions raised by callbacks are trapped and logged. They will
not propagate up to make sure other callbacks will still be
called, and the event dispatching always succeeds.
@param args: Positional arguments to the callable.
@type args: C{list}
@param kwargs: Keyword arguments to the callable.
@type kwargs: C{dict}'

def callback(self, *args, **kwargs):

    for (key, (methodwrapper, onetime)) in list(self.callbacks.items()):
        try:
            methodwrapper(*args, **kwargs)
        except:
            log.err()
        if onetime:
            del self.callbacks[key]
