Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
Raises:
ParserError: If there is a parsing error and error_handler=None.
"""
if env is None and self._default_env:
env = True
try:
with _suppress_stderr():
cfg, unk = self._parse_known_args(args=args)
if unk:
self.error('Unrecognized arguments: %s' % ' '.join(unk))
ActionSubCommands.handle_subcommands(self, cfg, env=env, defaults=defaults)
ActionParser._fix_conflicts(self, cfg)
cfg_dict = namespace_to_dict(cfg)
if nested:
cfg_dict = _flat_namespace_to_dict(dict_to_namespace(cfg_dict))
if env:
cfg_dict = self._merge_config(cfg_dict, self.parse_env(defaults=defaults, nested=nested, _skip_check=True))
elif defaults:
cfg_dict = self._merge_config(cfg_dict, self.get_defaults(nested=nested))
if not (with_meta or (with_meta is None and self._default_meta)):
cfg_dict = strip_meta(cfg_dict)
cfg_ns = dict_to_namespace(cfg_dict)
self.check_config(cfg_ns)