Allow ignoring of settings defaults when retrieving values

This commit is contained in:
Gina Häußge 2015-06-19 22:25:42 +02:00
parent a6c1084b14
commit 7c74aa4c4d

View file

@ -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):