diff options
author | syt <syt@localhost.localdomain> | 2006-09-05 14:22:24 +0200 |
---|---|---|
committer | syt <syt@localhost.localdomain> | 2006-09-05 14:22:24 +0200 |
commit | 057c6536424a86e8a7615ea8b6a2c2d6b2ac6e78 (patch) | |
tree | 64718cd630c831f452dbb4d2e2876517e455f60d /configuration.py | |
parent | 59061b4d3bcab97ecce52bbb1688264ce8b83926 (diff) | |
download | logilab-common-057c6536424a86e8a7615ea8b6a2c2d6b2ac6e78.tar.gz |
new register_options method on ConfigurationMixin
Diffstat (limited to 'configuration.py')
-rw-r--r-- | configuration.py | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/configuration.py b/configuration.py index f513a94..dd149d5 100644 --- a/configuration.py +++ b/configuration.py @@ -352,7 +352,7 @@ class OptionsManagerMixIn(object): goptions = [option for option in provider.options if option[1].get('group') == gname] self.add_option_group(gname, gdoc, goptions, provider) - + def add_option_group(self, group_name, doc, options, provider): """add an option group including the listed options """ @@ -716,6 +716,15 @@ class ConfigurationMixIn(OptionsManagerMixIn, OptionsProviderMixIn): self.option_groups.append(gdef) self.register_options_provider(self, own_group=0) + def register_options(self, options): + """add some options to the configuration""" + options_by_group = {} + for optname, optdict in options: + options_by_group.setdefault(optdict['group'], []).append((optname, optdict)) + for group, options in options_by_group.items(): + self.add_option_group(group, None, options, self) + self.options += tuple(options) + def load_defaults(self): OptionsProviderMixIn.load_defaults(self) |