From f2094efae84f28b8571090987cac38a6147b56fe Mon Sep 17 00:00:00 2001 From: Joostlek Date: Wed, 21 Feb 2024 18:40:09 +0100 Subject: [PATCH 1/2] Fix PLW2901 Signed-off-by: Joostlek --- pyproject.toml | 1 - roombapy/roomba.py | 41 +++++++++++++++++++++++------------------ 2 files changed, 23 insertions(+), 19 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index ef8d0c4..077fcad 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -69,7 +69,6 @@ ignore = [ "ISC001", # Conflicts with other rules "PLR2004", # Just annoying, not really useful "PLR0912", - "PLW2901", "SIM102", ] select = ["ALL"] diff --git a/roombapy/roomba.py b/roombapy/roomba.py index 25d75d6..1588294 100755 --- a/roombapy/roomba.py +++ b/roombapy/roomba.py @@ -313,12 +313,14 @@ def decode_topics(self, state, prefix=None): to strings to avoid unicode representations """ for key, value in state.items(): + mutable_key = key if isinstance(value, dict): if prefix is None: self.decode_topics(value, key) else: self.decode_topics(value, prefix + "_" + key) else: + other_list = value if isinstance(value, list): newlist = [] for i in value: @@ -326,37 +328,40 @@ def decode_topics(self, state, prefix=None): for ki, vi in i.items(): newlist.append((str(ki), vi)) else: + val = i if isinstance(i, str): - i = str(i) - newlist.append(i) - value = newlist + val = str(i) + newlist.append(val) + other_list = newlist if prefix is not None: - key = prefix + "_" + key + mutable_key = prefix + "_" + key # all data starts with this, so it's redundant - key = key.replace("state_reported_", "") + mutable_key = mutable_key.replace("state_reported_", "") # save variables for drawing map - if key == "pose_theta": - self.co_ords["theta"] = value - if key == "pose_point_x": # x and y are reversed... - self.co_ords["y"] = value - if key == "pose_point_y": - self.co_ords["x"] = value - if key == "bin_full": - self.bin_full = value - if key == "cleanMissionStatus_error": + if mutable_key == "pose_theta": + self.co_ords["theta"] = other_list + if mutable_key == "pose_point_x": # x and y are reversed... + self.co_ords["y"] = other_list + if mutable_key == "pose_point_y": + self.co_ords["x"] = other_list + if mutable_key == "bin_full": + self.bin_full = other_list + if mutable_key == "cleanMissionStatus_error": try: - self.error_code = value - self.error_message = ROOMBA_ERROR_MESSAGES[value] + self.error_code = other_list + self.error_message = ROOMBA_ERROR_MESSAGES[other_list] except KeyError as e: self.log.warning( "Error looking up Roomba error message: %s", e ) - self.error_message = "Unknown Error number: %s" % value + self.error_message = ( + "Unknown Error number: %s" % other_list + ) if key == "cleanMissionStatus_phase": self.previous_cleanMissionStatus_phase = ( self.cleanMissionStatus_phase ) - self.cleanMissionStatus_phase = value + self.cleanMissionStatus_phase = other_list if prefix is None: self.update_state_machine() From 9030b8a7de84627b09b6dd70ed0bcbcaaa64a862 Mon Sep 17 00:00:00 2001 From: Joostlek Date: Wed, 21 Feb 2024 18:44:53 +0100 Subject: [PATCH 2/2] Fix PLW2901 Signed-off-by: Joostlek --- roombapy/roomba.py | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/roombapy/roomba.py b/roombapy/roomba.py index b2b74b7..ef4c3b6 100755 --- a/roombapy/roomba.py +++ b/roombapy/roomba.py @@ -318,7 +318,7 @@ def decode_topics(self, state, prefix=None): else: self.decode_topics(value, prefix + "_" + key) else: - other_list = value + mutable_value = value if isinstance(value, list): newlist = [] for i in value: @@ -330,36 +330,38 @@ def decode_topics(self, state, prefix=None): if isinstance(i, str): val = str(i) newlist.append(val) - other_list = newlist + mutable_value = newlist if prefix is not None: mutable_key = prefix + "_" + key # all data starts with this, so it's redundant mutable_key = mutable_key.replace("state_reported_", "") # save variables for drawing map if mutable_key == "pose_theta": - self.co_ords["theta"] = other_list + self.co_ords["theta"] = mutable_value if mutable_key == "pose_point_x": # x and y are reversed... - self.co_ords["y"] = other_list + self.co_ords["y"] = mutable_value if mutable_key == "pose_point_y": - self.co_ords["x"] = other_list + self.co_ords["x"] = mutable_value if mutable_key == "bin_full": - self.bin_full = other_list + self.bin_full = mutable_value if mutable_key == "cleanMissionStatus_error": try: - self.error_code = other_list - self.error_message = ROOMBA_ERROR_MESSAGES[other_list] + self.error_code = mutable_value + self.error_message = ROOMBA_ERROR_MESSAGES[ + mutable_value + ] except KeyError as e: self.log.warning( "Error looking up Roomba error message: %s", e ) self.error_message = ( - "Unknown Error number: %s" % other_list + "Unknown Error number: %s" % mutable_value ) if key == "cleanMissionStatus_phase": self.previous_cleanMissionStatus_phase = ( self.cleanMissionStatus_phase ) - self.cleanMissionStatus_phase = other_list + self.cleanMissionStatus_phase = mutable_value if prefix is None: self.update_state_machine()