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)
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)