Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
def cleanup_actions(cfg, actions):
for action in actions:
if skip_none and action.dest in cfg and cfg[action.dest] is None:
del cfg[action.dest]
elif isinstance(action, ActionPath):
if cfg[action.dest] is not None:
if isinstance(cfg[action.dest], list):
cfg[action.dest] = [p(absolute=False) for p in cfg[action.dest]]
else:
cfg[action.dest] = cfg[action.dest](absolute=False)
elif isinstance(action, ActionConfigFile):
del cfg[action.dest]
elif isinstance(action, ActionParser):
cleanup_actions(cfg, action._parser._actions)
def __call__(self, *args, **kwargs):
"""Parses an argument as a Path and if valid sets the parsed value to the corresponding key.
Raises:
TypeError: If the argument is not a valid Path.
"""
if len(args) == 0:
if 'nargs' in kwargs and kwargs['nargs'] == 0:
raise ValueError('Invalid nargs='+str(kwargs['nargs'])+' for ActionPath.')
kwargs['_mode'] = self._mode
kwargs['_skip_check'] = self._skip_check
return ActionPath(**kwargs)
if hasattr(self, 'nargs') and self.nargs == '?' and args[2] is None:
setattr(args[1], self.dest, args[2])
else:
setattr(args[1], self.dest, self._check_type(args[2]))