docs: def add_parser_arguments(parser, args, group=None, prefix=DATA_PREFIX):
      """
      Helper method that populates parser arguments. The argument values can
      be later retrieved with `extract_arguments` method.
  
      The `args` argument to this method should be a dict with strings as
      keys and dicts as values. The keys will be used as keys in returned
      data. Their values will be passed as kwargs to `parser.add_argument`.
      There is special value `arg` that will be used as argument name if
      present, otherwise a name will be generated based on the key.
  
      If `group` is a string, it will be used as group header in help output.
      """
      if group:
          parser = parser.add_argument_group(group)
      for arg, kwargs in iteritems(args):
          arg_name = kwargs.pop('arg', arg.replace('_', '-'))
          if 'metavar' not in kwargs:
              kwargs['metavar'] = arg.upper()
          if 'dest' in kwargs:
              kwargs['dest'] = prefix + kwargs['dest']
          else:
              kwargs['dest'] = prefix + arg
          parser.add_argument('--' + arg_name, **kwargs)