def pickTag(inputdir, options) : tag = options.tag if options.tag else guessLatestTagFromLatestRootFiles(inputdir, options.debug) tag = tag if tag else guessMonthDayTagFromLastRootFile(inputdir, options.debug) # can get it wrong if from single file tag = tag.strip('_') # leading/trailing separators are not part of the tag if not isMonthDayTag(tag) : print "warning, non-standard tag might lead to bugs '%s'"%tag if options.verbose : print "using tag %s"%tag return tag
parser.add_option("--dryrun", action='store_true', help='do not actually merge') (options, args) = parser.parse_args() if len(args) != 1 : parser.error("incorrect number of arguments") inputdir = args[0] allBkg = options.allBkg allBkgButHf = options.allBkgButHf alsoph = options.alsoplaceholders group_regexp = options.groupregexp verbose = options.verbose debug = options.debug dryrun = options.dryrun onedata = options.onedata overwrite = options.overwrite outdir = options.output if options.output else inputdir+'/merged/' tag = (options.tag if options.tag else guessLatestTagFromLatestRootFiles(inputdir, debug)) tag = tag if tag else guessMonthDayTagFromLastRootFile(inputdir, debug) tag = tag.strip('_') # leading/trailing separators are not part of the tag if verbose : print "Options:" print '\n'.join(["%s : %s" % (o, eval(o)) for o in ['inputdir', 'outdir', 'group_regexp', 'tag', 'overwrite', 'allBkg', 'allBkgButHf', 'onedata', 'verbose', 'debug',]]) if not isMonthDayTag(tag) : print "warning, non-standard tag might lead to bugs '%s'"%tag if not os.path.isdir(outdir) : os.mkdir(outdir) if verbose : print "created directory '%s'"%outdir allDatasets = [d for d in datasets if alsoph or not d.placeholder] if onedata : allDatasets = setSameGroupForAllData(allDatasets) filenamesByGroup = collections.defaultdict(list)