Ejemplo n.º 1
0
def make_parser():
    """Make parser for command line args.

  Returns:
    A Parser object.
  """

    parser = argparse.ArgumentParser()
    parser.add_argument('filenames',
                        metavar='filename',
                        type=str,
                        nargs='*',
                        help='input file(s)')
    modes = parser.add_mutually_exclusive_group()
    modes.add_argument('--tree',
                       dest='tree',
                       action='store_true',
                       default=False,
                       help='Display import tree.')
    modes.add_argument('--unresolved',
                       dest='unresolved',
                       action='store_true',
                       default=False,
                       help='Display unresolved dependencies.')
    modes.add_argument('--generate-config',
                       dest='generate_config',
                       type=str,
                       action='store',
                       default='',
                       help='Write out a dummy configuration file.')
    parser.add_argument(
        '-v',
        '--verbosity',
        dest='verbosity',
        type=int,
        action='store',
        default=1,
        help='Set logging level: 0=ERROR, 1 =WARNING (default), 2=INFO.')
    parser.add_argument('--config',
                        dest='config',
                        type=str,
                        action='store',
                        default='',
                        help='Configuration file.')
    # Adds options from the config file.
    types = config.make_converters()
    for short_arg, arg, dest in [('-V', '--python-version', 'python_version'),
                                 ('-o', '--output', 'output'),
                                 ('-P', '--pythonpath', 'pythonpath')]:
        parser.add_argument(short_arg,
                            arg,
                            dest=dest,
                            type=types.get(dest),
                            action='store',
                            default=config.ITEMS[dest].default,
                            help=config.ITEMS[dest].comment)
    # Adds options from pytype-single.
    wrapper = ParserWrapper(parser)
    pytype_config.add_basic_options(wrapper)
    return Parser(parser, wrapper.names)
Ejemplo n.º 2
0
def make_parser():
  """Make parser for command line args.

  Returns:
    A Parser object.
  """

  parser = argparse.ArgumentParser(usage='%(prog)s [options] input [input ...]')
  parser.register('action', 'flatten', _FlattenAction)
  modes = parser.add_mutually_exclusive_group()
  modes.add_argument(
      '--tree', dest='tree', action='store_true', default=False,
      help='Display import tree.')
  modes.add_argument(
      '--unresolved', dest='unresolved', action='store_true', default=False,
      help='Display unresolved dependencies.')
  modes.add_argument(
      '--generate-config', dest='generate_config', type=str, action='store',
      default='',
      help='Write out a dummy configuration file.')
  parser.add_argument(
      '-v', '--verbosity', dest='verbosity', type=int, action='store',
      default=1,
      help='Set logging level: 0=ERROR, 1=WARNING (default), 2=INFO.')
  parser.add_argument(
      '--config', dest='config', type=str, action='store', default='',
      help='Configuration file.')
  parser.add_argument(
      '--version', action='store_true', dest='version', default=None,
      help=('Display pytype version and exit.'))

  # Adds options from the config file.
  types = config.make_converters()
  # For nargs=*, argparse calls type() on each arg individually, so
  # _FlattenAction flattens the list of sets of paths as we go along.
  for option in [
      (('-x', '--exclude'), {'nargs': '*', 'action': 'flatten'}),
      (('inputs',), {'metavar': 'input', 'nargs': '*', 'action': 'flatten'}),
      (('-k', '--keep-going'), {'action': 'store_true', 'type': None}),
      (('-j', '--jobs'), {'action': 'store', 'type': parse_jobs,
                          'metavar': 'N'}),
      (('-P', '--pythonpath'),),
      (('-V', '--python-version'),)
  ]:
    _add_file_argument(parser, types, *option)
  output = parser.add_mutually_exclusive_group()
  _add_file_argument(output, types, ('-o', '--output'))
  output.add_argument(
      '-n', '--no-cache', dest='no_cache', action='store_true', default=False,
      help='Send pytype output to a temporary directory.')

  # Adds options from pytype-single.
  wrapper = datatypes.ParserWrapper(parser)
  pytype_config.add_basic_options(wrapper)
  pytype_config.add_feature_flags(wrapper)
  return Parser(parser, wrapper.actions)