def add_arguments(self, parser, cli_name): self._subparser = parser # get verb extensions and let them add their arguments verb_extensions = get_verb_extensions('ros2bag.verb') add_subparsers( parser, cli_name, '_verb', verb_extensions, required=False)
def add_arguments(self, parser, cli_name): parser.add_argument('--include-hidden-services', action='store_true', help='Consider hidden services as well') # get verb extensions and let them add their arguments verb_extensions = get_verb_extensions('ros2service.verb') add_subparsers(parser, cli_name, '_verb', verb_extensions)
def add_arguments(self, parser, cli_name): self._subparser = parser verb_extension = get_verb_extensions('ros2interface.verb') add_subparsers(parser, cli_name, '_verb', verb_extension, required=False)
def add_arguments(self, parser, cli_name): self._subparser = parser parser.add_argument('--include-hidden-topics', action='store_true', help='Consider hidden topics as well') # get verb extensions and let them add their arguments verb_extensions = get_verb_extensions('ros2topic.verb') add_subparsers(parser, cli_name, '_verb', verb_extensions, required=False)
def main(*, script_name='ros2', argv=None, description=None, extension=None): if description is None: description = '{script_name} is an extensible command-line tool for ' \ 'ROS 2.'.format_map(locals()) # top level parser parser = argparse.ArgumentParser( description=description, formatter_class=argparse.RawDescriptionHelpFormatter) # add arguments for command extension(s) if extension: extension.add_arguments(parser, script_name) else: # get command extensions extensions = get_command_extensions('ros2cli.command') selected_extension_key = '_command' add_subparsers( parser, script_name, selected_extension_key, extensions, # hide the special commands in the help hide_extensions=['extension_points', 'extensions']) # register argcomplete hook if available try: from argcomplete import autocomplete except ImportError: pass else: autocomplete(parser, exclude=['-h', '--help']) # parse the command line arguments args = parser.parse_args(args=argv) if extension is None: # the attribute should always exist # otherwise argparse should have exited extension = getattr(args, selected_extension_key) # call the main method of the extension try: rc = extension.main(parser=parser, args=args) except KeyboardInterrupt: rc = signal.SIGINT except RuntimeError as e: rc = str(e) return rc
def add_arguments(self, parser, cli_name): # get verb extensions and let them add their arguments verb_extensions = get_verb_extensions('ros2msg.verb') add_subparsers(parser, cli_name, '_verb', verb_extensions)