def get_available_parameters(self):
        """
        Return a list of the parameters made available by the script.
        """

        # At the moment, we rely on regex to extract the list of available
        # parameters. This solution will break if the format of the output
        # changes, but this is the best option that is currently available.

        result = subprocess.check_output([self.script_executable,
                                          '--PrintHelp'], env=self.environment,
                                         cwd=self.path).decode('utf-8')

        # Isolate the list of parameters
        options = re.findall('.*Program\s(?:Options|Arguments):'
                             '(.*)General\sArguments.*',
                             result, re.DOTALL)

        global_options = subprocess.check_output([self.script_executable,
                                                  '--PrintGlobals'],
                                                 env=self.environment,
                                                 cwd=self.path).decode('utf-8')

        # Get the single parameter names
        args = []
        if len(options):
            args += re.findall('.*--(.*?)[?::|=].*', options[0], re.MULTILINE)
        if len(global_options):
            args += [k for k in re.findall('.*--(.*?)[?::|=].*',
                                           global_options, re.MULTILINE) if k
                     not in ['RngRun', 'RngSeed', 'SchedulerType',
                             'SimulatorImplementationType', 'ChecksumEnabled']]
        return sorted(args)
def get_available_parameters ( self ) : result = subprocess . check_output ( [ self . script_executable , '--PrintHelp' ] , env = self . environment , cwd = self . path ) . decode ( 'utf-8' ) options = re . findall ( '.*Program\s(?:Options|Arguments):' '(.*)General\sArguments.*' , result , re . DOTALL ) global_options = subprocess . check_output ( [ self . script_executable , '--PrintGlobals' ] , env = self . environment , cwd = self . path ) . decode ( 'utf-8' ) args = [ ] if len ( options ) : args += re . findall ( '.*--(.*?)[?::|=].*' , options [ 0 ] , re . MULTILINE ) if len ( global_options ) : args += [ k for k in re . findall ( '.*--(.*?)[?::|=].*' , global_options , re . MULTILINE ) if k not in [ 'RngRun' , 'RngSeed' , 'SchedulerType' , 'SimulatorImplementationType' , 'ChecksumEnabled' ] ] return sorted ( args )
Return a list of the parameters made available by the script.