Config: add set_default() / set_defaults() methods
This commit is contained in:
parent
5aa6a0cea4
commit
b5df95a2dd
1 changed files with 26 additions and 0 deletions
|
@ -116,6 +116,10 @@ class BaseOption: # pylint: disable=too-many-instance-attributes
|
||||||
|
|
||||||
self._set = True
|
self._set = True
|
||||||
|
|
||||||
|
def set_default(self, default_value):
|
||||||
|
"""Set option default value"""
|
||||||
|
self.default = default_value
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def parser_action(self):
|
def parser_action(self):
|
||||||
"""Get action as accept by argparse.ArgumentParser"""
|
"""Get action as accept by argparse.ArgumentParser"""
|
||||||
|
@ -511,6 +515,16 @@ class ConfigSection:
|
||||||
assert self.defined(option), f"Option {option} unknown"
|
assert self.defined(option), f"Option {option} unknown"
|
||||||
return self.options[option].set(value)
|
return self.options[option].set(value)
|
||||||
|
|
||||||
|
def set_default(self, option, default_value):
|
||||||
|
"""Set default option value"""
|
||||||
|
assert self.defined(option), f"Option {option} unknown"
|
||||||
|
return self.options[option].set_default(default_value)
|
||||||
|
|
||||||
|
def set_defaults(self, **default_values):
|
||||||
|
"""Set default options value"""
|
||||||
|
for option, default_value in default_values.items():
|
||||||
|
self.set_default(option, default_value)
|
||||||
|
|
||||||
def add_options_to_parser(self, parser):
|
def add_options_to_parser(self, parser):
|
||||||
"""Add section to argparse.ArgumentParser"""
|
"""Add section to argparse.ArgumentParser"""
|
||||||
assert isinstance(parser, argparse.ArgumentParser)
|
assert isinstance(parser, argparse.ArgumentParser)
|
||||||
|
@ -660,6 +674,18 @@ class Config: # pylint: disable=too-many-instance-attributes
|
||||||
self._init_config_parser()
|
self._init_config_parser()
|
||||||
self.sections[section].set(option, value)
|
self.sections[section].set(option, value)
|
||||||
|
|
||||||
|
def set_default(self, section, option, default_value):
|
||||||
|
"""Set default option value"""
|
||||||
|
assert self.defined(section, option), f"Unknown option {section}.{option}"
|
||||||
|
self._init_config_parser()
|
||||||
|
self.sections[section].set_default(option, default_value)
|
||||||
|
|
||||||
|
def set_defaults(self, section, **default_values):
|
||||||
|
"""Set default options value"""
|
||||||
|
assert section in self.sections, f"Unknown section {section}"
|
||||||
|
self._init_config_parser()
|
||||||
|
self.sections[section].set_defaults(**default_values)
|
||||||
|
|
||||||
def _init_config_parser(self, force=False):
|
def _init_config_parser(self, force=False):
|
||||||
"""Initialize ConfigParser object"""
|
"""Initialize ConfigParser object"""
|
||||||
if not self.config_parser or force:
|
if not self.config_parser or force:
|
||||||
|
|
Loading…
Reference in a new issue