class CallbackList: (source)
Container for callbacks.
Event queries are linked to lists of callables. When a matching event occurs, these callables are called in sequence. One-time callbacks are removed from the list after the first time the event was triggered.
Arguments to callbacks are split spread across two sets. The first set, callback specific, is passed to addCallback and is used for all subsequent event triggers. The second set is passed to callback and is event specific. Positional arguments in the second set come after the positional arguments of the first set. Keyword arguments in the second set override those in the first set.
Method | __init__ |
Undocumented |
Method | add |
Add callback. |
Method | callback |
Call all registered callbacks. |
Method | is |
Return if list of registered callbacks is empty. |
Method | remove |
Remove callback. |
Instance Variable | callbacks |
The registered callbacks as mapping from the callable to a tuple of a wrapper for that callable that keeps the callback specific arguments and a boolean that signifies if it is to be called only once. |
Add callback.
The arguments passed are used as callback specific arguments.
Parameters | |
onetime:bool | If True, this callback is called at most once. |
method | The callback callable to be added. |
*args:list | Positional arguments to the callable. |
**kwargs:dict | Keyword arguments to the callable. |
Call all registered callbacks.
The passed arguments are event specific and augment and override the callback specific arguments as described above.
Parameters | |
*args:list | Positional arguments to the callable. |
**kwargs:dict | Keyword arguments to the callable. |
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. |