From b40cba659a7b4096d6ce6a23e080cf77fb32bc9e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gina=20H=C3=A4u=C3=9Fge?= Date: Fri, 19 Jun 2015 11:06:51 +0200 Subject: [PATCH] Fix: defaults are now correctly applied when setting config for plugins --- src/octoprint/settings.py | 27 ++++++++++++++------------- 1 file changed, 14 insertions(+), 13 deletions(-) diff --git a/src/octoprint/settings.py b/src/octoprint/settings.py index b44a6844..6c6dd06b 100644 --- a/src/octoprint/settings.py +++ b/src/octoprint/settings.py @@ -854,7 +854,7 @@ class Settings(object): return results def getInt(self, path, config=None, defaults=None, preprocessors=None): - value = self.get(path, defaults=defaults, preprocessors=preprocessors) + value = self.get(path, config=config, defaults=defaults, preprocessors=preprocessors) if value is None: return None @@ -931,14 +931,15 @@ class Settings(object): #~~ setter - def set(self, path, value, force=False, defaults=None, preprocessors=None): + def set(self, path, value, config=None, force=False, defaults=None, preprocessors=None): if len(path) == 0: return if self._mtime is not None and self.last_modified != self._mtime: self.load() - config = self._config + if config is None: + config = self._config if defaults is None: defaults = default_settings if preprocessors is None: @@ -974,9 +975,9 @@ class Settings(object): config[key] = value self._dirty = True - def setInt(self, path, value, force=False, defaults=None, preprocessors=None): + def setInt(self, path, value, config=None, force=False, defaults=None, preprocessors=None): if value is None: - self.set(path, None, force=force, defaults=defaults, preprocessors=preprocessors) + self.set(path, None, config=config, force=force, defaults=defaults, preprocessors=preprocessors) return try: @@ -985,11 +986,11 @@ class Settings(object): self._logger.warn("Could not convert %r to a valid integer when setting option %r" % (value, path)) return - self.set(path, intValue, force) + self.set(path, intValue, config=config, force=force, defaults=defaults, preprocessors=preprocessors) - def setFloat(self, path, value, force=False, defaults=None, preprocessors=None): + def setFloat(self, path, value, config=None, force=False, defaults=None, preprocessors=None): if value is None: - self.set(path, None, force=force, defaults=defaults, preprocessors=preprocessors) + self.set(path, None, config=config, force=force, defaults=defaults, preprocessors=preprocessors) return try: @@ -998,15 +999,15 @@ class Settings(object): self._logger.warn("Could not convert %r to a valid integer when setting option %r" % (value, path)) return - self.set(path, floatValue, force) + self.set(path, floatValue, config=config, force=force, defaults=defaults, preprocessors=preprocessors) - def setBoolean(self, path, value, force=False, defaults=None, preprocessors=None): + def setBoolean(self, path, value, config=None, force=False, defaults=None, preprocessors=None): if value is None or isinstance(value, bool): - self.set(path, value, force=force, defaults=defaults, preprocessors=preprocessors) + self.set(path, value, config=config, force=force, defaults=defaults, preprocessors=preprocessors) elif value.lower() in valid_boolean_trues: - self.set(path, True, force=force, defaults=defaults, preprocessors=preprocessors) + self.set(path, True, config=config, force=force, defaults=defaults, preprocessors=preprocessors) else: - self.set(path, False, force=force, defaults=defaults, preprocessors=preprocessors) + self.set(path, False, config=config, force=force, defaults=defaults, preprocessors=preprocessors) def setBaseFolder(self, type, path, force=False): if type not in default_settings["folder"].keys():