def gc_cmd_line_parser(cmd_line_args): parser = Options(usage = '%s [OPTIONS] <config file>', add_help_option = False) parser.addBool(None, ' ', 'debug', default = False) parser.addBool(None, ' ', 'help-conf', default = False) parser.addBool(None, ' ', 'help-confmin', default = False) parser.addBool(None, 'c', 'continuous', default = False) parser.addBool(None, 'h', 'help', default = False) parser.addBool(None, 'i', 'init', default = False) parser.addBool(None, 'q', 'resync', default = False) parser.addBool(None, 's', 'no-submission', default = True, dest = 'submission') parser.addBool(None, 'G', 'gui', default = False, dest = 'gui_ansi') parser.addBool(None, 'W', 'webserver', default = False, dest = 'gui_cp') parser.addAccu(None, 'v', 'verbose') parser.addList(None, 'l', 'logging') parser.addList(None, 'o', 'override') parser.addText(None, ' ', 'action') parser.addText(None, 'd', 'delete') parser.addText(None, 'J', 'job-selector') parser.addText(None, 'm', 'max-retry') parser.addText(None, ' ', 'reset') # Deprecated options - refer to new report script instead for (sopt, lopt) in [('-r', 'report'), ('-R', 'site-report'), ('-T', 'time-report'), ('-M', 'task-report'), ('-D', 'detail-report'), ('', 'help-vars')]: parser.addBool(None, sopt, lopt, default = False, dest = 'old_report') (opts, args, _) = parser.parse(args = cmd_line_args) opts.gui = None if opts.gui_ansi: opts.gui = 'ANSIGUI' elif opts.gui_cp: opts.gui = 'CPWebserver' opts.continuous = opts.continuous or None # either True or None # Display help if opts.help: sys.stderr.write('%s\n\n%s\n' % (parser.usage(), open(utils.pathShare('help.txt'), 'r').read())) sys.exit(os.EX_USAGE) # Require single config file argument if len(args) == 0: utils.exitWithUsage(parser.usage(), 'Config file not specified!') elif len(args) > 1: utils.exitWithUsage(parser.usage(), 'Invalid command line arguments: %r' % cmd_line_args) # Warn about deprecated report options if opts.old_report: utils.deprecated('Please use the more versatile report tool in the scripts directory!') # Configure preliminary logging utils.verbosity(opts.verbose) logging.getLogger().setLevel(max(1, logging.DEFAULT - opts.verbose)) if opts.debug: # Setup initial debug handler before it is reconfigured by logging_setup handler = logging.StreamHandler(sys.stdout) handler.setFormatter(ExceptionFormatter(showCodeContext = 2, showVariables = 1, showFileStack = 1)) logging.getLogger('exception').addHandler(handler) return (opts, args)
def parse_cmd_line(cmd_line_args): parser = Options(usage='%s [OPTIONS] <config file>', add_help_option=False) parser.addBool(None, ' ', 'debug', default=False) parser.addBool(None, ' ', 'help-conf', default=False) parser.addBool(None, ' ', 'help-confmin', default=False) parser.addBool(None, 'c', 'continuous', default=False) parser.addBool(None, 'h', 'help', default=False) parser.addBool(None, 'i', 'init', default=False) parser.addBool(None, 'q', 'resync', default=False) parser.addBool(None, ' ', 'createwd', default=False) parser.addBool(None, 's', 'no-submission', default=True, dest='submission') parser.addBool(None, 'G', 'gui', default=False, dest='gui_ansi') parser.addAccu(None, 'v', 'verbose') parser.addList(None, 'l', 'logging') parser.addList(None, 'o', 'override') parser.addText(None, ' ', 'action') parser.addText(None, 'd', 'delete') parser.addText(None, 'J', 'job-selector') parser.addText(None, 'm', 'max-retry') parser.addText(None, ' ', 'reset') # Deprecated options - refer to new report script instead for (sopt, lopt) in [('-r', 'report'), ('-R', 'site-report'), ('-T', 'time-report'), ('-M', 'task-report'), ('-D', 'detail-report'), ('', 'help-vars')]: parser.addBool(None, sopt, lopt, default=False, dest='old_report') (opts, args, _) = parser.parse(args=cmd_line_args) opts.gui = None if opts.gui_ansi: opts.gui = 'ANSIGUI' opts.continuous = opts.continuous or None # either True or None # Display help if opts.help: utils.exitWithUsage(parser.usage(), open(utils.pathShare('help.txt'), 'r').read(), show_help=False) # Require single config file argument if len(args) == 0: utils.exitWithUsage(parser.usage(), 'Config file not specified!') elif len(args) > 1: utils.exitWithUsage( parser.usage(), 'Invalid command line arguments: %r' % cmd_line_args) # Warn about deprecated report options if opts.old_report: utils.deprecated( 'Please use the more versatile report tool in the scripts directory!' ) # Configure preliminary logging logging.getLogger().setLevel(max(1, logging.DEFAULT - opts.verbose)) return (opts, args)
def parse_cmd_line(cmd_line_args): parser = Options(usage = '%s [OPTIONS] <config file>', add_help_option = False) parser.addBool(None, ' ', 'debug', default = False) parser.addBool(None, ' ', 'help-conf', default = False) parser.addBool(None, ' ', 'help-confmin', default = False) parser.addBool(None, 'c', 'continuous', default = False) parser.addBool(None, 'h', 'help', default = False) parser.addBool(None, 'i', 'init', default = False) parser.addBool(None, 'q', 'resync', default = False) parser.addBool(None, 's', 'no-submission', default = True, dest = 'submission') parser.addBool(None, 'G', 'gui', default = False, dest = 'gui_ansi') parser.addAccu(None, 'v', 'verbose') parser.addList(None, 'l', 'logging') parser.addList(None, 'o', 'override') parser.addText(None, ' ', 'action') parser.addText(None, 'd', 'delete') parser.addText(None, 'J', 'job-selector') parser.addText(None, 'm', 'max-retry') parser.addText(None, ' ', 'reset') # Deprecated options - refer to new report script instead for (sopt, lopt) in [('-r', 'report'), ('-R', 'site-report'), ('-T', 'time-report'), ('-M', 'task-report'), ('-D', 'detail-report'), ('', 'help-vars')]: parser.addBool(None, sopt, lopt, default = False, dest = 'old_report') (opts, args, _) = parser.parse(args = cmd_line_args) opts.gui = None if opts.gui_ansi: opts.gui = 'ANSIGUI' opts.continuous = opts.continuous or None # either True or None # Display help if opts.help: utils.exitWithUsage(parser.usage(), open(utils.pathShare('help.txt'), 'r').read(), show_help = False) # Require single config file argument if len(args) == 0: utils.exitWithUsage(parser.usage(), 'Config file not specified!') elif len(args) > 1: utils.exitWithUsage(parser.usage(), 'Invalid command line arguments: %r' % cmd_line_args) # Warn about deprecated report options if opts.old_report: utils.deprecated('Please use the more versatile report tool in the scripts directory!') # Configure preliminary logging logging.getLogger().setLevel(max(1, logging.DEFAULT - opts.verbose)) return (opts, args)
files = lmap(lambda x: x.strip().strip(','), files.split()) def printError(curJ, curS, msg): if curJ != curS: logging.warning('%s in job %d (j:%s != s:%s)', msg, jobNum, curJ, curS) fail.add(jobNum) printError(events, splitInfo[DataSplitter.NEntries], 'Inconsistent number of events') printError(skip, splitInfo[DataSplitter.Skipped], 'Inconsistent number of skipped events') printError(files, splitInfo[DataSplitter.FileList], 'Inconsistent list of files') except Exception: logging.warning('Job %d was never initialized!', jobNum) if fail: logging.warning('Failed: ' + str.join('\n', imap(str, fail))) if (opts.partition_list is not None) or opts.partition_list_invalid or opts.partition_check: if len(args) != 1: utils.exitWithUsage(parser.usage('part')) splitter = DataSplitter.loadPartitionsForScript(args[0]) if opts.partition_list_invalid: utils.printTabular([(0, 'Job')], partition_invalid(splitter)) if opts.partition_list is not None: if opts.partition_list in ('', 'all'): keyStrings = DataSplitter.enumNames else: keyStrings = opts.partition_list.split(',') keyList = lmap(DataSplitter.str2enum, keyStrings) if None in keyList: logging.warning('Available keys: %r', DataSplitter.enumNames) utils.printTabular([('jobNum', 'Job')] + lzip(keyList, keyStrings), partition_list(splitter, keyList))
parser.add_option('-M', '--task-report', dest='old_report', default=False, action='store_true') parser.add_option('-D', '--detail-report', dest='old_report', default=False, action='store_true') parser.add_option('', '--help-vars', dest='old_report', default=False, action='store_true') (opts, args) = parser.parse_args() if opts.help: utils.eprint('%s\n%s' % (usage, open(utils.pathShare('help.txt'), 'r').read())) sys.exit(os.EX_USAGE) utils.verbosity(opts.verbosity) logging.getLogger().setLevel(logging.DEFAULT - opts.verbosity) if opts.debug: logging.getLogger('exception').addHandler(logging.StreamHandler(sys.stdout)) # we need exactly one positional argument (config file) if len(args) != 1: utils.exitWithUsage(usage, 'Config file not specified!') if opts.old_report: utils.deprecated('Please use the more versatile report tool in the scripts directory!') # Config filler which collects data from command line arguments class OptsConfigFiller(ConfigFiller): def __init__(self, optParser): self._optParser = optParser def fill(self, container): entries = filter(lambda entry: entry.section == 'global', container.getEntries('cmdargs')) combinedEntry = ConfigEntry.combineEntries(entries) defaultCmdLine = [] if combinedEntry: defaultCmdLine = combinedEntry.value.split() (opts, args) = self._optParser.parse_args(args = defaultCmdLine + sys.argv[1:])