From 9560a546a0de582e06599cad78680f3654dbb725 Mon Sep 17 00:00:00 2001 From: Jovan Gerodetti Date: Sat, 5 Nov 2022 13:32:29 +0100 Subject: [PATCH] catch exceptions when trying to parse selection_group cache file --- .../services/selection_group.py | 23 ++++++++++--------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/src/control_any_sim/services/selection_group.py b/src/control_any_sim/services/selection_group.py index 68e6d47..74eec81 100644 --- a/src/control_any_sim/services/selection_group.py +++ b/src/control_any_sim/services/selection_group.py @@ -57,24 +57,25 @@ def get_instance(cls, household_id): # restore state try: file_handler = open(HOME_DIR + '/selection_group.json', encoding="utf8") + state = file_handler.read() + file_handler.close() + Logger.log(f'restored state: {state}') except BaseException: - file_handler = None + state = None - if file_handler is None or not file_handler.readable(): + if state is None: return cls(household_id) - state = file_handler.read() - file_handler.close() - - Logger.log(f'restored state: {state}') - # deserialize - instance = cls.deserialize(state) # pylint: disable=no-member + try: + instance = cls.deserialize(state) # pylint: disable=no-member - if instance.household_id != household_id: - return cls(household_id) + if instance.household_id != household_id: + return cls(household_id) - return instance + return instance + except BaseException: + return cls(household_id) @property def client(self):