def get_parser(self, prog_name): """Return an :class:`argparse.ArgumentParser`. """ parser = _argparse.ArgumentParser( description=self.get_description(), epilog=self.get_epilog(), prog=prog_name, formatter_class=_SmartHelpFormatter, ) for hook in self._hooks: hook.obj.get_parser(parser) return parser
def build_option_parser(self, description, version, argparse_kwargs=None): """Return an argparse option parser for this application. Subclasses may override this method to extend the parser with more global options. :param description: full description of the application :paramtype description: str :param version: version number for the application :paramtype version: str :param argparse_kwargs: extra keyword argument passed to the ArgumentParser constructor :paramtype extra_kwargs: dict """ argparse_kwargs = argparse_kwargs or {} parser = _argparse.ArgumentParser(description=description, add_help=False, **argparse_kwargs) parser.add_argument( '--version', action='version', version='%(prog)s {0}'.format(version), ) verbose_group = parser.add_mutually_exclusive_group() verbose_group.add_argument( '-v', '--verbose', action='count', dest='verbose_level', default=self.DEFAULT_VERBOSE_LEVEL, help='Increase verbosity of output. Can be repeated.', ) verbose_group.add_argument( '-q', '--quiet', action='store_const', dest='verbose_level', const=0, help='Suppress output except warnings and errors.', ) parser.add_argument( '--log-file', action='store', default=None, help='Specify a file to log output. Disabled by default.', ) if self.deferred_help: parser.add_argument( '-h', '--help', dest='deferred_help', action='store_true', help="Show help message and exit.", ) else: parser.add_argument( '-h', '--help', action=help.HelpAction, nargs=0, default=self, # tricky help="Show help message and exit.", ) parser.add_argument( '--debug', default=False, action='store_true', help='Show tracebacks on errors.', ) return parser
def test_argument_parser_add_nested_group(self): parser = _argparse.ArgumentParser(conflict_handler='ignore') group = parser.add_argument_group() group.add_argument_group()
def test_argument_parser_add_mx_nested_mutually_exclusive_group(self): parser = _argparse.ArgumentParser(conflict_handler='ignore') group = parser.add_mutually_exclusive_group() group.add_mutually_exclusive_group()
def test_argument_parser(self): _argparse.ArgumentParser(conflict_handler='ignore')