diff options
author | Brian Dolbec <brian.dolbec@gmail.com> | 2011-02-23 23:42:42 -0800 |
---|---|---|
committer | Brian Dolbec <brian.dolbec@gmail.com> | 2011-03-26 19:39:13 -0700 |
commit | d9de33168cfe46be2e269d04ec52afe003f7ba6d (patch) | |
tree | 72c68f9cfd39d739451dd4ebd3ec2fdd71fa5ab6 /layman/config.py | |
parent | 336d0c4b675dff698455cc9df91b71de78347fa7 (diff) | |
download | layman-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.py | 18 |
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 |