def substVars(self, inp, jobNum = None, addDict = {}, check = True): allVars = utils.mergeDicts([addDict, self.getTaskConfig()]) if jobNum != None: allVars.update(self.getJobConfig(jobNum)) subst = lambda x: utils.replaceDict(x, allVars, self.getVarMapping().items() + zip(addDict, addDict)) result = subst(subst(str(inp))) return utils.checkVar(result, "'%s' contains invalid variable specifiers: '%s'" % (inp, result), check)
def _generateDatasetName(self, key, data): if self._discovery: return GCProvider._generateDatasetName(self, key, data) if 'CMSSW_DATATIER' not in data: raise DatasetError('Incompatible data tiers in dataset: %s' % data) getPathComponents = lambda path: utils.QM(path, tuple(path.strip('/').split('/')), ()) userPath = getPathComponents(self._ds_name) (primary, processed, tier) = (None, None, None) # In case of a child dataset, use the parent infos to construct new path for parent in data.get('PARENT_PATH', []): if len(userPath) == 3: (primary, processed, tier) = userPath else: try: (primary, processed, tier) = getPathComponents(parent) except Exception: clear_current_exception() if (primary is None) and (len(userPath) > 0): primary = userPath[0] userPath = userPath[1:] if len(userPath) == 2: (processed, tier) = userPath elif len(userPath) == 1: (processed, tier) = (userPath[0], data['CMSSW_DATATIER']) elif len(userPath) == 0: (processed, tier) = ('Dataset_%s' % key, data['CMSSW_DATATIER']) rawDS = '/%s/%s/%s' % (primary, processed, tier) if None in (primary, processed, tier): raise DatasetError('Invalid dataset name supplied: %r\nresulting in %s' % (self._ds_name, rawDS)) return utils.replaceDict(rawDS, data)
def generateDatasetName(self, key, data): if self._discovery: return GCProvider.generateDatasetName(self, key, data) if 'CMSSW_DATATIER' not in data: raise DatasetError('Incompatible data tiers in dataset: %s' % data) getPathComponents = lambda path: utils.QM(path, tuple(path.strip('/').split('/')), ()) userPath = getPathComponents(self.nameDS) (primary, processed, tier) = (None, None, None) # In case of a child dataset, use the parent infos to construct new path for parent in data.get('PARENT_PATH', []): if len(userPath) == 3: (primary, processed, tier) = userPath else: try: (primary, processed, tier) = getPathComponents(parent) except Exception: pass if (primary is None) and (len(userPath) > 0): primary = userPath[0] userPath = userPath[1:] if len(userPath) == 2: (processed, tier) = userPath elif len(userPath) == 1: (processed, tier) = (userPath[0], data['CMSSW_DATATIER']) elif len(userPath) == 0: (processed, tier) = ('Dataset_%s' % key, data['CMSSW_DATATIER']) rawDS = '/%s/%s/%s' % (primary, processed, tier) if None in (primary, processed, tier): raise DatasetError('Invalid dataset name supplied: %r\nresulting in %s' % (self.nameDS, rawDS)) return utils.replaceDict(rawDS, data)
def substVars(self, name, inp, jobNum = None, addDict = None, check = True): addDict = addDict or {} allVars = utils.mergeDicts([addDict, self.getTaskConfig()]) if jobNum is not None: allVars.update(self.getJobConfig(jobNum)) subst = lambda x: utils.replaceDict(x, allVars, ichain([self.getVarMapping().items(), izip(addDict, addDict)])) result = subst(subst(str(inp))) if check and self._varCheck.check(result): raise ConfigError('%s references unknown variables: %s' % (name, result)) return result
def substVars(self, inp, jobNum = None, addDict = None, check = True): addDict = addDict or {} allVars = utils.mergeDicts([addDict, self.getTaskConfig()]) if jobNum is not None: allVars.update(self.getJobConfig(jobNum)) subst = lambda x: utils.replaceDict(x, allVars, ichain([self.getVarMapping().items(), izip(addDict, addDict)])) result = subst(subst(str(inp))) if check and self._varCheck.check(result): raise ConfigError("'%s' contains invalid variable specifiers: '%s'" % (inp, result)) return result
def _generateBlockName(self, key, data): return utils.replaceDict(self._b_name or key[:8], data)
def _generateDatasetName(self, key, data): if 'SE_OUTPUT_BASE' in data: return utils.replaceDict(self._ds_name or '/PRIVATE/@SE_OUTPUT_BASE@', data) return utils.replaceDict(self._ds_name or ('/PRIVATE/Dataset_%s' % key), data)
def _generateBlockName(self, key, data): return utils.replaceDict(self.nameB or key[:8], data)
def _generateDatasetName(self, key, data): if 'SE_OUTPUT_BASE' in data: return utils.replaceDict(self.nameDS or '/PRIVATE/@SE_OUTPUT_BASE@', data) return utils.replaceDict(self.nameDS or ('/PRIVATE/Dataset_%s' % key), data)
def generateBlockName(self, key, data): return utils.replaceDict(QM(self.nameB, self.nameB, key[:8]), data)
def generateDatasetName(self, key, data): if 'SE_OUTPUT_BASE' in data: return utils.replaceDict(QM(self.nameDS, self.nameDS, '/PRIVATE/@SE_OUTPUT_BASE@'), data) return utils.replaceDict(QM(self.nameDS, self.nameDS, '/PRIVATE/Dataset_%s' % key), data)