aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrian Dolbec <brian.dolbec@gmail.com>2011-02-23 23:42:42 -0800
committerBrian Dolbec <brian.dolbec@gmail.com>2011-03-26 19:39:13 -0700
commitd9de33168cfe46be2e269d04ec52afe003f7ba6d (patch)
tree72c68f9cfd39d739451dd4ebd3ec2fdd71fa5ab6 /layman/config.py
parentmake add_from_dict() private. (diff)
downloadlayman-d9de33168cfe46be2e269d04ec52afe003f7ba6d.tar.gz
layman-d9de33168cfe46be2e269d04ec52afe003f7ba6d.tar.bz2
layman-d9de33168cfe46be2e269d04ec52afe003f7ba6d.zip
add being able to set the OptionConfig defaults as well
Diffstat (limited to 'layman/config.py')
-rw-r--r--layman/config.py18
1 files changed, 15 insertions, 3 deletions
diff --git a/layman/config.py b/layman/config.py
index cda6fce..1645a3c 100644
--- a/layman/config.py
+++ b/layman/config.py
@@ -203,19 +203,22 @@ class BareConfig(object):
class OptionConfig(BareConfig):
"""This subclasses BareCongig adding functions to make overriding
- defaults and/or setting up options much easier via a dictionary
+ or resetting defaults and/or setting options much easier
+ by using dictionaries.
"""
- def __init__(self, options=None):
+ def __init__(self, options=None, defaults=None):
"""
@param options: dictionary of {'option': value, ...}
@rtype OptionConfig class instance.
"""
BareConfig.__init__(self)
+ self.update_defaults(defaults)
+
self.update(options)
- return self
+ return
def update(self, options):
"""update the options with new values passed in via options
@@ -232,3 +235,12 @@ class OptionConfig(BareConfig):
options.pop('quietness')
self._options.update(options)
return
+
+ def update_defaults(self, new_defaults):
+ """update the options with new values passed in via options
+
+ @param options
+ """
+ if new_defaults is not None:
+ self._defaults.update(new_defaults)
+ return