diff --git a/lib/tfw/components/history_monitor.py b/lib/tfw/components/history_monitor.py index 67bfc3b..b103bb9 100644 --- a/lib/tfw/components/history_monitor.py +++ b/lib/tfw/components/history_monitor.py @@ -36,7 +36,6 @@ class HistoryMonitor(CallbackMixin, ObserverMixin, ABC): See examples below. """ def __init__(self, histfile): - CallbackMixin.__init__(self) self.histfile = histfile self._history = [] self._last_length = len(self._history) diff --git a/lib/tfw/fsm_base.py b/lib/tfw/fsm_base.py index d2e1df0..85ac12f 100644 --- a/lib/tfw/fsm_base.py +++ b/lib/tfw/fsm_base.py @@ -19,7 +19,6 @@ class FSMBase(CallbackMixin): states, transitions = [], [] def __init__(self, initial: str = None, accepted_states: List[str] = None): - CallbackMixin.__init__(self) self.accepted_states = accepted_states or [self.states[-1]] self.machine = Machine(model=self, states=self.states, diff --git a/lib/tfw/mixins/callback_mixin.py b/lib/tfw/mixins/callback_mixin.py index e5cd534..971de5c 100644 --- a/lib/tfw/mixins/callback_mixin.py +++ b/lib/tfw/mixins/callback_mixin.py @@ -3,10 +3,13 @@ from functools import partial +from tfw.decorators import LazyInitialise + class CallbackMixin: - def __init__(self): - self._callbacks = [] + @LazyInitialise + def _callbacks(self): + return [] def subscribe_callback(self, callback, *args, **kwargs): """