Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
Args:
env_prefix (str): Prefix for environment variables.
error_handler (Callable): Handler for parsing errors (default=None). For same behavior as argparse use :func:`usage_and_exit_error_handler`.
formatter_class (argparse.HelpFormatter or str): Class for printing help messages or one of {"default", "default_argparse"}.
logger (logging.Logger or bool or int or str or None): A logger to use or True/int(log level)/str(logger name)
to use the default logger or False/None to disable logging.
version (str): Program version string to add --version argument.
parser_mode (str): Mode for parsing configuration files, either "yaml" or "jsonnet".
default_config_files (list[str]): List of strings defining default config file locations. For example: :code:`['~/.config/myapp/*.yaml']`.
default_env (bool): Set the default value on whether to parse environment variables.
default_meta (bool): Set the default value on whether to include metadata in config objects.
"""
if isinstance(formatter_class, str) and formatter_class not in {'default', 'default_argparse'}:
raise ValueError('The only accepted values for formatter_class are {"default", "default_argparse"} or a HelpFormatter class.')
if formatter_class == 'default':
formatter_class = DefaultHelpFormatter
elif formatter_class == 'default_argparse':
formatter_class = argparse.ArgumentDefaultsHelpFormatter
kwargs['formatter_class'] = formatter_class
if formatter_class == DefaultHelpFormatter:
setattr(formatter_class, '_conf_file', False)
if self.groups is None:
self.groups = {}
super().__init__(*args, **kwargs)
self.required_args = set() # type: Set[str]
self._stderr = sys.stderr
self._default_config_files = default_config_files
self.default_meta = default_meta
self.default_env = default_env
self.env_prefix = env_prefix
self.parser_mode = parser_mode
self.logger = logger
logger (logging.Logger or bool or int or str or None): A logger to use or True/int(log level)/str(logger name)
to use the default logger or False/None to disable logging.
version (str): Program version string to add --version argument.
parser_mode (str): Mode for parsing configuration files, either "yaml" or "jsonnet".
default_config_files (list[str]): List of strings defining default config file locations. For example: :code:`['~/.config/myapp/*.yaml']`.
default_env (bool): Set the default value on whether to parse environment variables.
default_meta (bool): Set the default value on whether to include metadata in config objects.
"""
if isinstance(formatter_class, str) and formatter_class not in {'default', 'default_argparse'}:
raise ValueError('The only accepted values for formatter_class are {"default", "default_argparse"} or a HelpFormatter class.')
if formatter_class == 'default':
formatter_class = DefaultHelpFormatter
elif formatter_class == 'default_argparse':
formatter_class = argparse.ArgumentDefaultsHelpFormatter
kwargs['formatter_class'] = formatter_class
if formatter_class == DefaultHelpFormatter:
setattr(formatter_class, '_conf_file', False)
if self.groups is None:
self.groups = {}
super().__init__(*args, **kwargs)
self.required_args = set() # type: Set[str]
self._stderr = sys.stderr
self._default_config_files = default_config_files
self.default_meta = default_meta
self.default_env = default_env
self.env_prefix = env_prefix
self.parser_mode = parser_mode
self.logger = logger
self.error_handler = error_handler
if version is not None:
self.add_argument('--version', action='version', version='%(prog)s '+version)
if parser_mode not in {'yaml', 'jsonnet'}:
def default_env(self, default_env):
"""Sets a new value to the default_env property.
Args:
default_env (bool): Whether default environment parsing is enabled or not.
"""
self._default_env = default_env
if self.formatter_class == DefaultHelpFormatter:
setattr(self.formatter_class, '_default_env', default_env)