Skip to content

Instantly share code, notes, and snippets.

Created November 28, 2012 20:03
Show Gist options
  • Save anonymous/9a2e9928b46ada39abf7 to your computer and use it in GitHub Desktop.
Save anonymous/9a2e9928b46ada39abf7 to your computer and use it in GitHub Desktop.
class SettingsReader:
def __init__(self, opts, config, settings):
self.opts = opts
self.config = config
self.settings = settings
def __contains__(self, key):
if (key in self.opts or
key in self.config or
key in self.settings):
return True
return False
def __getitem__(self, key):
if key in self.opts:
value = self.opts.get(key)
elif key in self.config:
value = self.config.get(key)
elif key in self.settings:
value = self.settings.get(key)
else:
raise MissingParamException('Missing ' + param_name)
return value
def get(self, key, function=lambda: None):
try:
return self[key]
except MissingParamException:
pass
return function()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment