Beispiel #1
0
 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
Beispiel #2
0
 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
Beispiel #3
0
 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
Beispiel #4
0
    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
Beispiel #5
0
 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
Beispiel #6
0
 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
Beispiel #7
0
 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
Beispiel #8
0
    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
Beispiel #9
0
 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
Beispiel #10
0
 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
Beispiel #11
0
 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
Beispiel #12
0
 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
Beispiel #13
0
 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
Beispiel #14
0
 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
Beispiel #15
0
 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
Beispiel #16
0
 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
Beispiel #17
0
 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
Beispiel #18
0
 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
Beispiel #19
0
 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
Beispiel #20
0
 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
Beispiel #21
0
 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
Beispiel #22
0
 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
Beispiel #23
0
 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
Beispiel #24
0
 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
Beispiel #25
0
 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
Beispiel #26
0
 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
Beispiel #27
0
 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
Beispiel #28
0
 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
Beispiel #29
0
 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
Beispiel #30
0
 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
Beispiel #31
0
 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
Beispiel #32
0
    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