From 4cfd48104db531c26c4cf5750d3d5462c3b97e24 Mon Sep 17 00:00:00 2001 From: Chris Veilleux Date: Mon, 9 Sep 2019 11:52:05 -0500 Subject: [PATCH] deal with empty settings file --- mycroft/skills/settings.py | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/mycroft/skills/settings.py b/mycroft/skills/settings.py index af848d55b8..6a4ff1c51e 100644 --- a/mycroft/skills/settings.py +++ b/mycroft/skills/settings.py @@ -73,18 +73,19 @@ ONE_MINUTE = 60 def get_local_settings(skill_dir, skill_name) -> dict: """Build a dictionary using the JSON string stored in settings.json.""" + skill_settings = {} settings_path = Path(skill_dir).joinpath('settings.json') - if settings_path.is_file(): + LOG.info(settings_path) + if settings_path.exists(): with open(str(settings_path)) as settings_file: + settings_file_content = settings_file.read() + if settings_file_content: try: - skill_settings = json.load(settings_file) + skill_settings = json.loads(settings_file_content) # TODO change to check for JSONDecodeError in 19.08 except Exception: log_msg = 'Failed to load {} settings from settings.json' LOG.exception(log_msg.format(skill_name)) - skill_settings = {} - else: - skill_settings = {} return skill_settings @@ -377,7 +378,7 @@ class Settings: if attr not in ['store', 'set_changed_callback']: return getattr(self._settings, attr) else: - return super().getattr(attr) + return getattr(self, attr) def __setitem__(self, key, val): self._settings[key] = val