diff --git a/src/octoprint/settings.py b/src/octoprint/settings.py index eab68cf6..f4b2cf09 100644 --- a/src/octoprint/settings.py +++ b/src/octoprint/settings.py @@ -789,7 +789,7 @@ class Settings(object): #~~ getter - def get(self, path, asdict=False, config=None, defaults=None, preprocessors=None, merged=False): + def get(self, path, asdict=False, config=None, defaults=None, preprocessors=None, merged=False, incl_defaults=True): import octoprint.util as util if len(path) == 0: @@ -807,7 +807,7 @@ class Settings(object): if key in config and key in defaults: config = config[key] defaults = defaults[key] - elif key in defaults: + elif incl_defaults and key in defaults: config = {} defaults = defaults[key] else: @@ -832,7 +832,7 @@ class Settings(object): value = config[key] if merged and key in defaults: value = util.dict_merge(defaults[key], value) - elif key in defaults: + elif incl_defaults and key in defaults: value = defaults[key] else: value = None @@ -853,8 +853,8 @@ class Settings(object): else: return results - def getInt(self, path, config=None, defaults=None, preprocessors=None): - value = self.get(path, config=config, defaults=defaults, preprocessors=preprocessors) + def getInt(self, path, config=None, defaults=None, preprocessors=None, incl_defaults=True): + value = self.get(path, config=config, defaults=defaults, preprocessors=preprocessors, incl_defaults=incl_defaults) if value is None: return None @@ -864,8 +864,8 @@ class Settings(object): self._logger.warn("Could not convert %r to a valid integer when getting option %r" % (value, path)) return None - def getFloat(self, path, config=None, defaults=None, preprocessors=None): - value = self.get(path, config=config, defaults=defaults, preprocessors=preprocessors) + def getFloat(self, path, config=None, defaults=None, preprocessors=None, incl_defaults=True): + value = self.get(path, config=config, defaults=defaults, preprocessors=preprocessors, incl_defaults=incl_defaults) if value is None: return None @@ -875,8 +875,8 @@ class Settings(object): self._logger.warn("Could not convert %r to a valid integer when getting option %r" % (value, path)) return None - def getBoolean(self, path, config=None, defaults=None, preprocessors=None): - value = self.get(path, config=config, defaults=defaults, preprocessors=preprocessors) + def getBoolean(self, path, config=None, defaults=None, preprocessors=None, incl_defaults=True): + value = self.get(path, config=config, defaults=defaults, preprocessors=preprocessors, incl_defaults=incl_defaults) if value is None: return None if isinstance(value, bool):