From 6f3db18146cf168c01836f57f05e633cb1a750a8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Krist=C3=B3f=20T=C3=B3th?= Date: Fri, 1 Jun 2018 14:21:32 +0200 Subject: [PATCH] Use power of LazyInitialise to replace CallbackMixin.__init__() --- lib/tfw/components/history_monitor.py | 1 - lib/tfw/fsm_base.py | 1 - lib/tfw/mixins/callback_mixin.py | 7 +++++-- 3 files changed, 5 insertions(+), 4 deletions(-) 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): """