def _construct_parser(self): usage = "%s [arguments] [launcher] [launcher_arguments] [--] <command> [command_arguments]" % self.command parser = arguments.get_parser(prog=self.command, usage=usage, description=self.summary) parser.add_argument('--tau-dir', help="Project directory location", metavar='tau_dir', nargs='?') parser.add_argument('--description', help="Description of trial", nargs='?') parser.add_argument('launcher', help="Application launcher command, e.g. mpirun", metavar='launcher', nargs='?') parser.add_argument('launcher_args', help="Application launcher arguments", metavar='launcher_arguments', nargs=arguments.REMAINDER) parser.add_argument('cmd', help="Executable command, e.g. './a.out'", metavar='command') parser.add_argument('cmd_args', help="Executable command arguments", metavar='command_arguments', nargs=arguments.REMAINDER) return parser
def _construct_parser(self): key_str = self.model_name + '_' + self.model.key_attribute usage_head = ("%(command)s [%(key_str)s] [%(key_str)s] ... [arguments]" % {'command': self.command, 'key_str': key_str}) parser = arguments.get_parser(prog=self.command, usage=usage_head, description=self.summary) parser.add_argument('keys', help=("Show only %(model_name)ss with the given %(key_attr)ss" % self._format_fields), metavar=key_str, nargs='*', default=arguments.SUPPRESS) style_dest = 'style' style_group = parser.add_mutually_exclusive_group() style_group.add_argument('-s', '--short', help="show minimal %(model_name)s data" % self._format_fields, const='short', action='store_const', dest=style_dest, default=arguments.SUPPRESS) style_group.add_argument('-d', '--dashboard', help="show %(model_name)s data in a fancy dasboard" % self._format_fields, const='dashboard', action='store_const', dest=style_dest, default=arguments.SUPPRESS) style_group.add_argument('-l', '--long', help="show all %(model_name)s data in a list" % self._format_fields, const='long', action='store_const', dest=style_dest, default=arguments.SUPPRESS) if self.include_storage_flag: arguments.add_storage_flag(parser, "show", self.model_name, plural=True, exclusive=False) return parser
def _construct_parser(self): usage = "%s [trial_number... | data_file...] [arguments]" % self.command parser = arguments.get_parser(prog=self.command, usage=usage, description=self.summary) parser.add_argument('--profile-tools', help="specify profile analysis tools", metavar='<tool>', nargs='+', choices=PROFILE_ANALYSIS_TOOLS, default=arguments.SUPPRESS) parser.add_argument('--trace-tool', help="specify trace analysis tool", metavar='<tool>', nargs='+', choices=TRACE_ANALYSIS_TOOLS, default=arguments.SUPPRESS) parser.add_argument('trial_numbers', help="Display data from trials", metavar='<trial_number>', nargs='*', default=arguments.SUPPRESS) parser.add_argument('data_files', help="Display data from files", metavar='<data_file>', nargs='*', default=arguments.SUPPRESS) return parser
def _construct_parser(self): """Constructs the command line argument parser. Returns: A command line argument parser instance. """ def _default_target_name(): node_name = platform.node() if not node_name: return 'default_target' return node_name.split('.')[0] usage = "%s [arguments]" % self.command parser = arguments.get_parser(prog=self.command, usage=usage, description=self.summary) parser.add_argument('--bare', help="Initialize project storage but don't configure anything", nargs='?', const=True, default=False, metavar='T/F', action=ParseBooleanAction) parser.add_argument('--tau-options', help="forcibly add options to TAU_OPTIONS environment variable (not recommended)", nargs='+', metavar='<option>') default_project_name = os.path.basename(os.getcwd()) or 'default_project' project_group = parser.add_argument_group('project arguments') project_group.add_argument('--project-name', help="Name of the new project", metavar='<name>', default=default_project_name) project_group.add_argument('--storage-level', help='location of installation directory', choices=STORAGE_LEVELS.keys(), metavar='<levels>', default=arguments.SUPPRESS) parser.merge(target_create_cmd.parser, group_title='target arguments') target_group = parser.add_argument_group('target arguments') target_group.add_argument('--target-name', help="Name of the new target configuration", metavar='<name>', default=_default_target_name()) parser.merge(application_create_cmd.parser, group_title='application arguments') default_application_name = os.path.basename(os.getcwd()) or 'default_application' application_group = parser.add_argument_group('application arguments') application_group.add_argument('--application-name', help="Name of the new application configuration", metavar='<name>', default=default_application_name) parser.merge(measurement_create_cmd.parser, group_title='measurement arguments') measurement_group = parser.add_argument_group('measurement arguments') # Override model defaults so measurements are created unless explicitly disabled measurement_group['--source-inst'].default = 'automatic' measurement_group['--profile'].default = 'tau' measurement_group['--trace'].default = 'otf2' measurement_group['--sample'].default = True return parser
def _construct_parser(self): usage = "%s [trial_number... | data_file...] [arguments]" % self.command parser = arguments.get_parser(prog=self.command, usage=usage, description=self.summary) parser.add_argument('--profile-tools', help="specify profile analysis tools", metavar='<tool>', nargs='+', choices=PROFILE_ANALYSIS_TOOLS, default=arguments.SUPPRESS) parser.add_argument('--trace-tool', help="specify trace analysis tool", metavar='<tool>', nargs='+', choices=TRACE_ANALYSIS_TOOLS, default=arguments.SUPPRESS) parser.add_argument('trial_numbers', help="Display data from trials", metavar='<trial_number>', nargs='*', default=arguments.SUPPRESS) parser.add_argument('data_files', help="Display data from files", metavar='<data_file>', nargs='*', default=arguments.SUPPRESS) return parser
def _construct_parser(self): usage = "%s <trial_number> [arguments]" % self.command parser = arguments.get_parser(prog=self.command, usage=usage, description=self.summary) parser.add_argument('number', help="Number of the trial to delete", metavar='<trial_number>') return parser
def _construct_parser(self): usage_head = "%s --dynist|--maqao|--pebil <executable> <inst-file>" % self.command parser = arguments.get_parser(prog=self.command, usage=usage_head, description=self.summary) parser.add_argument('--dyninst', help="Use dyninst to rewrite executable", const=True, default=False, action='store_const') parser.add_argument('--maqao', help="Use maqao to rewrite executable", const=True, default=False, action='store_const') parser.add_argument('--pebil', help="Use pebil to rewrite executable", const=True, default=False, action='store_const') parser.add_argument('executable', help="Executable to be rewritten", metavar='<executable>') parser.add_argument('inst_file', help="Instrumented output file", metavar='<inst_file>') return parser
def _construct_parser(self): usage_head = "%s <target_name> [arguments]" % self.command parser = arguments.get_parser(prog=self.command, usage=usage_head, description=self.summary) arguments.add_storage_flag(parser, "use", "target") parser.add_argument('target_name', help="Target name", metavar='<target_name>') parser.add_argument('--systems', help="List metrics from these measurement systems", metavar='system', nargs="+", choices=self._measurement_systems, default=['TAU', 'PAPI_PRESET']) parser.add_argument('--all', help="Show all metrics and their modifiers", default=False, const=True, action="store_const") parser.add_argument('--modifiers', help="Show metric modifiers", default=False, const=True, action="store_const") return parser
def _construct_parser(self): usage = "%s <trial_number> [arguments]" % self.command parser = arguments.get_parser(prog=self.command, usage=usage, description=self.summary) parser.add_argument('number', help="Number of the trial to delete", nargs='+', metavar='<trial_number>') return parser
def _construct_parser(self): usage_head = "%s <command>|<file>|all [arguments]" % self.command parser = arguments.get_parser(prog=self.command, usage=usage_head, description=self.summary) parser.add_argument('command', help="A TAU command, system command, or file.", metavar='(<command>|<file>|all)', nargs='+') return parser
def _construct_parser(self): key_str = self.model_name + '_' + self.model.key_attribute usage_head = ( "%(command)s [%(key_str)s] [%(key_str)s] ... [arguments]" % { 'command': self.command, 'key_str': key_str }) parser = arguments.get_parser(prog=self.command, usage=usage_head, description=self.summary) parser.add_argument( 'keys', help=("Show only %(model_name)ss with the given %(key_attr)ss" % self._format_fields), metavar=key_str, nargs='*', default=arguments.SUPPRESS) style_dest = 'style' style_group = parser.add_mutually_exclusive_group() style_group.add_argument('-s', '--short', help="show minimal %(model_name)s data" % self._format_fields, const='short', action='store_const', dest=style_dest, default=arguments.SUPPRESS) style_group.add_argument( '-d', '--dashboard', help="show %(model_name)s data in a fancy dasboard" % self._format_fields, const='dashboard', action='store_const', dest=style_dest, default=arguments.SUPPRESS) style_group.add_argument( '-l', '--long', help="show all %(model_name)s data in a list" % self._format_fields, const='long', action='store_const', dest=style_dest, default=arguments.SUPPRESS) parser.add_argument('-p', '--project', help="Use PROJECT instead of the selected project", type=str, default=None) if self.include_storage_flag: arguments.add_storage_flag(parser, "show", self.model_name, plural=True, exclusive=False) return parser
def _construct_parser(self): usage = "%s <experiment_name>" % self.command parser = arguments.get_parser(prog=self.command, usage=usage, description=self.summary) parser.add_argument('name', help="Experiment name", metavar='<experiment_name>') return parser
def _construct_parser(self): usage = "%s [arguments] <subcommand> [options]" % self.command _green = lambda x: "{:<35}".format(util.color_text(x, 'green')) epilog_parts = [ "", cli.commands_description(), "", util.color_text("Shortcuts:", attrs=["bold"]), _green(" %(command)s <compiler>") + "Execute a compiler command", " - Example: %(command)s gcc *.c -o a.out", " - Alias for '%(command)s build <compiler>'", _green(" %(command)s <program>") + "Gather data from a program", " - Example: %(command)s ./a.out", " - Alias for '%(command)s trial create <program>'", _green(" %(command)s metrics") + "Show metrics available in the current experiment", " - Alias for '%(command)s target metrics'", _green(" %(command)s select") + "Select configuration objects to create a new experiment", " - Alias for '%(command)s experiment create'", _green(" %(command)s show") + "Show data from the most recent trial", " - Alias for '%(command)s trial show'", "", "See `%(command)s help <subcommand>` for more information on a subcommand." ] epilog = '\n'.join(epilog_parts) % { 'color_command': util.color_text(self.command, 'cyan'), 'command': self.command } parser = arguments.get_parser(prog=self.command, usage=usage, description=self.summary, epilog=epilog) parser.add_argument('command', help="See subcommand descriptions below", metavar='<subcommand>') parser.add_argument('options', help="Options to be passed to <subcommand>", metavar='[options]', nargs=arguments.REMAINDER) parser.add_argument('-V', '--version', action='version', version=taucmdr.version_banner()) group = parser.add_mutually_exclusive_group() group.add_argument('-v', '--verbose', help="show debugging messages", const='DEBUG', default=arguments.SUPPRESS, action='store_const') group.add_argument('-q', '--quiet', help="suppress all output except error messages", const='ERROR', default=arguments.SUPPRESS, action='store_const') return parser
def _construct_parser(self): usage_head = "%s <command>|<file>|all [arguments]" % self.command parser = arguments.get_parser(prog=self.command, usage=usage_head, description=self.summary) parser.add_argument('command', help="A TAU command, system command, or file.", metavar='(<command>|<file>|all)', nargs='+') return parser
def _construct_parser(self): usage = "%s [trial_number...] [arguments]" % self.command parser = arguments.get_parser(prog=self.command, usage=usage, description=self.summary) parser.add_argument('--destination', help="location to store exported trial data", metavar='<path>', default=os.getcwd()) parser.add_argument('trial_numbers', help="show details for specified trials", metavar='trial_number', nargs='*', default=arguments.SUPPRESS) return parser
def _construct_parser(self): usage = "%s [trial_number...] [arguments]" % self.command parser = arguments.get_parser(prog=self.command, usage=usage, description=self.summary) parser.add_argument('--destination', help="location to store exported trial data", metavar='<path>', default=os.getcwd()) parser.add_argument('trial_numbers', help="show details for specified trials", metavar='trial_number', nargs='*', default=arguments.SUPPRESS) return parser
def _construct_parser(self): parts = [' %s %s' % ('{:<15}'.format(comp.command), comp.short_descr) for comp in Knowledgebase.all_compilers()] epilog = "known compiler commands and their roles:\n%s\n" % '\n'.join(sorted(parts)) usage = "%s <command> [arguments]" % self.command parser = arguments.get_parser(prog=self.command, usage=usage, description=self.summary, epilog=epilog) parser.add_argument('cmd', help="Compiler or linker command, e.g. 'gcc'", metavar='<command>') parser.add_argument('cmd_args', help="Compiler arguments", metavar='[arguments]', nargs=arguments.REMAINDER) return parser
def _construct_parser(self): usage = "%s [arguments]" % self.command parser = arguments.get_parser(prog=self.command, usage=usage, description=self.summary) style_dest = 'style' style_group = parser.add_mutually_exclusive_group() style_group.add_argument('-d', '--dashboard', help="show data in a fancy dasboard", const='dashboard', action='store_const', dest=style_dest, default='dashboard') style_group.add_argument('-l', '--long', help="show data in long format", const='long', action='store_const', dest=style_dest, default=arguments.SUPPRESS) return parser
def _construct_parser(self): key_attr = self.model.key_attribute usage = "%s <%s_%s> [arguments]" % (self.command, self.model_name, key_attr) epilog = util.color_text("WARNING: THIS OPERATION IS NOT REVERSABLE!", 'yellow', attrs=['bold']) parser = arguments.get_parser(prog=self.command, usage=usage, description=self.summary, epilog=epilog) parser.add_argument(key_attr, help="%s of %s configuration to delete" % (key_attr.capitalize(), self.model_name), metavar='<%s_%s>' % (self.model_name, key_attr)) if self.include_storage_flag: arguments.add_storage_flag(parser, "delete", self.model_name) return parser
def _construct_parser(self): usage = "%s <subcommand> [arguments]" % self.command epilog = ['', cli.commands_description(self.module_name), '', "See `%s <subcommand> --help` for more information on a subcommand." % self.command] parser = arguments.get_parser(prog=self.command, usage=usage, description=self.summary, epilog='\n'.join(epilog)) parser.add_argument('subcommand', help="See 'subcommands' below", metavar='<subcommand>') parser.add_argument('options', help="Arguments to be passed to <subcommand>", metavar='[arguments]', nargs=arguments.REMAINDER) return parser
def _construct_parser(self): usage = "%s [trial_number...] --to [new_trial_number...]" parser = arguments.get_parser(prog=self.command, usage=usage, description=self.summary) parser.add_argument('trial_numbers', help="Trials to renumber", metavar='<trial_number>', nargs='+', default=arguments.SUPPRESS) parser.add_argument('--to', help="New trial numbers", metavar='<new_trial_number>', nargs='+', default=arguments.SUPPRESS) return parser
def _construct_parser(self): usage = "%s [arguments] <subcommand> [options]" % self.command _green = lambda x: "{:<35}".format(util.color_text(x, 'green')) epilog_parts = ["", cli.commands_description(), "", util.color_text("Shortcuts:", attrs=["bold"]), _green(" %(command)s <compiler>") + "Execute a compiler command", " - Example: %(command)s gcc *.c -o a.out", " - Alias for '%(command)s build <compiler>'", _green(" %(command)s <program>") + "Gather data from a program", " - Example: %(command)s ./a.out", " - Alias for '%(command)s trial create <program>'", _green(" %(command)s metrics") + "Show metrics available in the current experiment", " - Alias for '%(command)s target metrics'", _green(" %(command)s select") + "Select configuration objects to create a new experiment", " - Alias for '%(command)s experiment create'", _green(" %(command)s show") + "Show data from the most recent trial", " - Alias for '%(command)s trial show'", "", "See '%(command)s help <subcommand>' for more information on <subcommand>."] epilog = '\n'.join(epilog_parts) % {'color_command': util.color_text(self.command, 'cyan'), 'command': self.command} parser = arguments.get_parser(prog=self.command, usage=usage, description=self.summary, epilog=epilog) parser.add_argument('command', help="See subcommand descriptions below", metavar='<subcommand>') parser.add_argument('options', help="Options to be passed to <subcommand>", metavar='[options]', nargs=arguments.REMAINDER) parser.add_argument('-V', '--version', action='version', version=taucmdr.version_banner()) group = parser.add_mutually_exclusive_group() group.add_argument('-v', '--verbose', help="show debugging messages", const='DEBUG', default=arguments.SUPPRESS, action='store_const') group.add_argument('-q', '--quiet', help="suppress all output except error messages", const='ERROR', default=arguments.SUPPRESS, action='store_const') return parser
def _construct_parser(self): usage_head = "%s <target_name> [arguments]" % self.command parser = arguments.get_parser(prog=self.command, usage=usage_head, description=self.summary) arguments.add_storage_flag(parser, "use", "target") parser.add_argument('target_name', help="Target name", metavar='<target_name>') parser.add_argument('--systems', help="List metrics from these measurement systems", metavar='system', nargs="+", choices=self._measurement_systems, default=['TAU', 'PAPI_PRESET']) parser.add_argument('--all', help="Show all metrics and their modifiers", default=False, const=True, action="store_const") parser.add_argument('--modifiers', help="Show metric modifiers", default=False, const=True, action="store_const") return parser
def _construct_parser(self): key_attr = self.model.key_attribute usage = "%s <%s_%s> [arguments]" % (self.command, self.model_name, key_attr) epilog = util.color_text("WARNING: THIS OPERATION IS NOT REVERSABLE!", 'yellow', attrs=['bold']) parser = arguments.get_parser(prog=self.command, usage=usage, description=self.summary, epilog=epilog) parser.add_argument(key_attr, help="%s of %s configuration to delete" % (key_attr.capitalize(), self.model_name), metavar='<%s_%s>' % (self.model_name, key_attr)) if self.include_storage_flag: arguments.add_storage_flag(parser, "delete", self.model_name) return parser
def _construct_parser(self): usage = "%s [arguments] [launcher] [launcher_arguments] [--] <command> [command_arguments]" % self.command parser = arguments.get_parser(prog=self.command, usage=usage, description=self.summary) parser.add_argument('launcher', help="Application launcher command, e.g. mpirun", metavar='launcher', nargs='?') parser.add_argument('launcher_args', help="Application launcher arguments", metavar='launcher_arguments', nargs=arguments.REMAINDER) parser.add_argument('cmd', help="Executable command, e.g. './a.out'", metavar='command') parser.add_argument('cmd_args', help="Executable command arguments", metavar='command_arguments', nargs=arguments.REMAINDER) return parser
def _construct_parser(self): usage = "%s [experiment] [target] [application] [measurement]" % self.command parser = arguments.get_parser(prog=self.command, usage=usage, description=self.summary) parser.add_argument('impl_target', help="Target configuration name", metavar='target', nargs='*', default=arguments.SUPPRESS) parser.add_argument('impl_application', help="Application configuration name", metavar='application', nargs='*', default=arguments.SUPPRESS) parser.add_argument('impl_measurement', help="Measurement configuration name", metavar='measurement', nargs='*', default=arguments.SUPPRESS) parser.add_argument('impl_experiment', help="Experiment configuration name", metavar='experiment', nargs='*', default=arguments.SUPPRESS) parser.add_argument('--target', help="Target configuration name", metavar='<name>', default=arguments.SUPPRESS) parser.add_argument('--application', help="Application configuration name", metavar='<name>', default=arguments.SUPPRESS) parser.add_argument('--measurement', help="Measurement configuration name", metavar='<name>', default=arguments.SUPPRESS) parser.add_argument('--experiment', help="Experiment configuration name", metavar='<name>', default=arguments.SUPPRESS) return parser
def _construct_parser(self): usage = "%s <subcommand> [arguments]" % self.command epilog = [ '', cli.commands_description(self.module_name), '', "See `%s <subcommand> --help` for more information on a subcommand." % self.command ] parser = arguments.get_parser(prog=self.command, usage=usage, description=self.summary, epilog='\n'.join(epilog)) parser.add_argument('subcommand', help="See 'subcommands' below", metavar='<subcommand>') parser.add_argument('options', help="Arguments to be passed to <subcommand>", metavar='[arguments]', nargs=arguments.REMAINDER) return parser
def _construct_parser(self): parts = [ ' %s %s' % ('{:<15}'.format(comp.command), comp.short_descr) for comp in Knowledgebase.all_compilers() ] epilog = "known compiler commands and their roles:\n%s\n" % '\n'.join( sorted(parts)) usage = "%s <command> [arguments]" % self.command parser = arguments.get_parser(prog=self.command, usage=usage, description=self.summary, epilog=epilog) parser.add_argument('cmd', help="Compiler or linker command, e.g. 'gcc'", metavar='<command>') parser.add_argument('cmd_args', help="Compiler arguments", metavar='[arguments]', nargs=arguments.REMAINDER) return parser
def _construct_parser(self): usage = "%s [experiment] [target] [application] [measurement]" % self.command parser = arguments.get_parser(prog=self.command, usage=usage, description=self.summary) parser.add_argument('impl_target', help="Target configuration name", metavar='target', nargs='*', default=arguments.SUPPRESS) parser.add_argument('impl_application', help="Application configuration name", metavar='application', nargs='*', default=arguments.SUPPRESS) parser.add_argument('impl_measurement', help="Measurement configuration name", metavar='measurement', nargs='*', default=arguments.SUPPRESS) parser.add_argument('impl_experiment', help="Experiment configuration name", metavar='experiment', nargs='*', default=arguments.SUPPRESS) parser.add_argument('--target', help="Target configuration name", metavar='<name>', default=arguments.SUPPRESS) parser.add_argument('--application', help="Application configuration name", metavar='<name>', default=arguments.SUPPRESS) parser.add_argument('--measurement', help="Measurement configuration name", metavar='<name>', default=arguments.SUPPRESS) parser.add_argument('--experiment', help="Experiment configuration name", metavar='<name>', default=arguments.SUPPRESS) return parser
def _construct_parser(self): usage = "%s [arguments]" % self.command parser = arguments.get_parser(prog=self.command, usage=usage, description=self.summary) style_dest = 'style' style_group = parser.add_mutually_exclusive_group() style_group.add_argument('-d', '--dashboard', help="show data in a fancy dasboard", const='dashboard', action='store_const', dest=style_dest, default='dashboard') style_group.add_argument('-l', '--long', help="show data in long format", const='long', action='store_const', dest=style_dest, default=arguments.SUPPRESS) return parser
def _construct_parser(self): usage = "%s <project_name>" % self.command parser = arguments.get_parser(prog=self.command, usage=usage, description=self.summary) parser.add_argument('name', help="Project name", metavar='<project_name>') return parser
def _construct_parser(self): usage = "%s [arguments]" % self.command parser = arguments.get_parser(prog=self.command, usage=usage, description=self.summary) parser.add_argument('--bare', help="Initialize project but don't create target, application, or measurement objects", nargs='?', const=True, default=False, metavar='T/F', action=ParseBooleanAction) project_group = parser.add_argument_group('project arguments') project_group.add_argument('--project-name', help="Name of the new project", metavar='<name>', default=(os.path.basename(os.getcwd()) or 'default_project')) project_group.add_argument('--storage-level', help='location of installation directory', choices=STORAGE_LEVELS.keys(), metavar='<levels>', default=arguments.SUPPRESS) project_group.add_argument('--force', help="Force project to be created in current directory", nargs='?', const=True, default=False, metavar='T/F', action=ParseBooleanAction) target_group = parser.add_argument_group('target arguments') target_group.add_argument('--target-name', help="Name of the new target configuration", metavar='<name>', default=(platform.node() or 'default_target').split('.')[0]) application_group = parser.add_argument_group('application arguments') application_group.add_argument('--application-name', help="Name of the new application configuration", metavar='<name>', default=(os.path.basename(os.getcwd()) or 'default_application')) # If an argument appears in both application and measurement (e.g. --mpi, --openmp, --cuda, etc.) # then use the measurement form instead of the application form. excluded = [] for action in measurement_create_cmd.parser.actions: excluded.extend(action.option_strings) parser.merge(target_create_cmd.parser) parser.merge(application_create_cmd.parser, exclude_arguments=excluded) parser.merge(measurement_create_cmd.parser) # OpenMP is a special case, see https://github.com/ParaToolsInc/taucmdr/issues/209 for action in parser.actions: if action.dest == 'openmp': action.default = None action.const = 'ignore' break # Change defaults so that measurements are created unless explicitly disabled measurement_group = parser.add_argument_group('measurement arguments') measurement_group['--source-inst'].default = 'automatic' measurement_group['--compiler-inst'].default = 'fallback' measurement_group['--profile'].default = 'tau' measurement_group['--trace'].default = 'otf2' measurement_group['--sample'].default = True return parser