mirror of
https://github.com/avatao-content/baseimage-tutorial-framework
synced 2025-06-29 02:15:12 +00:00
Refactor callback subscription stuff to a mixin
This commit is contained in:
17
lib/tfw/components/mixins/callback_mixin.py
Normal file
17
lib/tfw/components/mixins/callback_mixin.py
Normal file
@ -0,0 +1,17 @@
|
||||
from functools import partial
|
||||
|
||||
|
||||
class CallbackMixin:
|
||||
def __init__(self):
|
||||
self._callbacks = []
|
||||
|
||||
def subscribe_callback(self, callback, *args, **kwargs):
|
||||
fun = partial(callback, *args, **kwargs)
|
||||
self._callbacks.append(fun)
|
||||
|
||||
def unsubscribe_callback(self, callback):
|
||||
self._callbacks.remove(callback)
|
||||
|
||||
def _execute_callbacks(self, *args, **kwargs):
|
||||
for callback in self._callbacks:
|
||||
callback(*args, **kwargs)
|
Reference in New Issue
Block a user