From 13ce61bf5caece952337bfe7fae66d6ed1443ee7 Mon Sep 17 00:00:00 2001 From: Jack Harper Date: Mon, 13 Jan 2025 13:32:04 +0000 Subject: [PATCH 1/3] Correct type hint for _get_initial_state() --- lewis/devices/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lewis/devices/__init__.py b/lewis/devices/__init__.py index 0cf5dc32..afdff56f 100644 --- a/lewis/devices/__init__.py +++ b/lewis/devices/__init__.py @@ -139,7 +139,7 @@ def _get_state_handlers(self) -> dict[str, State]: "_get_state_handlers must be implemented in a StateMachineDevice." ) - def _get_initial_state(self) -> State: + def _get_initial_state(self) -> str: """ Implement this method to return the initial state of the internal state machine. The default implementation raises a ``NotImplementedError``. From e123ee8982477b88c87ed3760e49e6766aec72d7 Mon Sep 17 00:00:00 2001 From: Jack Harper Date: Mon, 13 Jan 2025 13:35:15 +0000 Subject: [PATCH 2/3] ruff --- lewis/devices/__init__.py | 24 ++++++++++++++++-------- 1 file changed, 16 insertions(+), 8 deletions(-) diff --git a/lewis/devices/__init__.py b/lewis/devices/__init__.py index afdff56f..3e9323eb 100644 --- a/lewis/devices/__init__.py +++ b/lewis/devices/__init__.py @@ -98,7 +98,8 @@ class StateMachineDevice(DeviceBase, CanProcessComposite): def __init__( self, override_states: dict[str, State] | None = None, - override_transitions: dict[tuple[State, State], Callable[[], bool]] | None = None, + override_transitions: dict[tuple[State, State], Callable[[], bool]] + | None = None, override_initial_state: State | None = None, override_initial_data: dict[str, float] | None = None, ) -> None: @@ -114,13 +115,17 @@ def __init__( initial = override_initial_state or self._get_initial_state() if initial not in state_handlers: - raise RuntimeError("Initial state '{}' is not a valid state.".format(initial)) + raise RuntimeError( + "Initial state '{}' is not a valid state.".format(initial) + ) self._csm = StateMachine( { "initial": initial, "states": state_handlers, - "transitions": self._get_final_transition_handlers(override_transitions), + "transitions": self._get_final_transition_handlers( + override_transitions + ), }, context=self, ) @@ -146,7 +151,9 @@ def _get_initial_state(self) -> str: :return: The initial state of the state machine. """ - raise NotImplementedError("_get_initial_state must be implemented in a StateMachineDevice.") + raise NotImplementedError( + "_get_initial_state must be implemented in a StateMachineDevice." + ) def _get_transition_handlers(self) -> dict[tuple[State, State], Callable[[], bool]]: """ @@ -169,7 +176,9 @@ def _initialize_data(self) -> None: """ pass - def _get_final_state_handlers(self, overrides: dict[str, State] | None) -> dict[str, State]: + def _get_final_state_handlers( + self, overrides: dict[str, State] | None + ) -> dict[str, State]: states = self._get_state_handlers() if overrides is not None: @@ -198,9 +207,8 @@ def _override_data(self, overrides: dict[str, float] | None) -> None: self.log.debug("Trying to override initial data (%s=%s)", name, val) if name not in dir(self): raise AttributeError( - "Can not override non-existing attribute" "'{}' of class '{}'.".format( - name, type(self).__name__ - ) + "Can not override non-existing attribute" + "'{}' of class '{}'.".format(name, type(self).__name__) ) setattr(self, name, val) From 1e87fd770b3c2b70f08f9513f9c9e542fcf19cbb Mon Sep 17 00:00:00 2001 From: Jack Harper Date: Mon, 13 Jan 2025 13:36:59 +0000 Subject: [PATCH 3/3] ruff using our config --- lewis/devices/__init__.py | 24 ++++++++---------------- 1 file changed, 8 insertions(+), 16 deletions(-) diff --git a/lewis/devices/__init__.py b/lewis/devices/__init__.py index 3e9323eb..c7898125 100644 --- a/lewis/devices/__init__.py +++ b/lewis/devices/__init__.py @@ -98,8 +98,7 @@ class StateMachineDevice(DeviceBase, CanProcessComposite): def __init__( self, override_states: dict[str, State] | None = None, - override_transitions: dict[tuple[State, State], Callable[[], bool]] - | None = None, + override_transitions: dict[tuple[State, State], Callable[[], bool]] | None = None, override_initial_state: State | None = None, override_initial_data: dict[str, float] | None = None, ) -> None: @@ -115,17 +114,13 @@ def __init__( initial = override_initial_state or self._get_initial_state() if initial not in state_handlers: - raise RuntimeError( - "Initial state '{}' is not a valid state.".format(initial) - ) + raise RuntimeError("Initial state '{}' is not a valid state.".format(initial)) self._csm = StateMachine( { "initial": initial, "states": state_handlers, - "transitions": self._get_final_transition_handlers( - override_transitions - ), + "transitions": self._get_final_transition_handlers(override_transitions), }, context=self, ) @@ -151,9 +146,7 @@ def _get_initial_state(self) -> str: :return: The initial state of the state machine. """ - raise NotImplementedError( - "_get_initial_state must be implemented in a StateMachineDevice." - ) + raise NotImplementedError("_get_initial_state must be implemented in a StateMachineDevice.") def _get_transition_handlers(self) -> dict[tuple[State, State], Callable[[], bool]]: """ @@ -176,9 +169,7 @@ def _initialize_data(self) -> None: """ pass - def _get_final_state_handlers( - self, overrides: dict[str, State] | None - ) -> dict[str, State]: + def _get_final_state_handlers(self, overrides: dict[str, State] | None) -> dict[str, State]: states = self._get_state_handlers() if overrides is not None: @@ -207,8 +198,9 @@ def _override_data(self, overrides: dict[str, float] | None) -> None: self.log.debug("Trying to override initial data (%s=%s)", name, val) if name not in dir(self): raise AttributeError( - "Can not override non-existing attribute" - "'{}' of class '{}'.".format(name, type(self).__name__) + "Can not override non-existing attribute'{}' of class '{}'.".format( + name, type(self).__name__ + ) ) setattr(self, name, val)