/
githubmirror
/
cmssw
Обзор
Документация
Войти
/
githubmirror
/
cmssw
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
Configuration/DataProcessing/test/RunDQMHarvesting.py
128 строк
4 KB
Shahzad Malik Muzaffar
[OPERATIONS] py2/3 compatibility:drop use of __future__
22 ноя 2024, 20:16
22 ноя 2024, 20:16
6a1a334
Код
Авторство
О чём код?
#!/usr/bin/env python3 """ _RunDQMHarvesting_ Test wrapper to generate a harvesting config and push it into cmsRun for testing with a few input files etc from the command line """ import sys import getopt import pickle from Configuration.DataProcessing.GetScenario import getScenario class RunDQMHarvesting: def __init__(self): self.scenario = None self.dataset = None self.run = None self.globalTag = 'UNSPECIFIED::All' self.inputLFN = None self.dqmio = None def __call__(self): if self.scenario == None: msg = "No --scenario specified" raise RuntimeError(msg) if self.inputLFN == None: msg = "No --lfn specified" raise RuntimeError(msg) if self.run == None: msg = "No --run specified" raise RuntimeError(msg) if self.dataset == None: msg = "No --dataset specified" raise RuntimeError(msg) try: scenario = getScenario(self.scenario) except Exception as ex: msg = "Error getting Scenario implementation for %s\n" % ( self.scenario,) msg += str(ex) raise RuntimeError(msg) print("Retrieved Scenario: %s" % self.scenario) print("Using Global Tag: %s" % self.globalTag) print("Dataset: %s" % self.dataset) print("Run: %s" % self.run) try: kwds = {} if not self.dqmio is None: kwds['newDQMIO'] = self.dqmio process = scenario.dqmHarvesting(self.dataset, self.run, self.globalTag, **kwds) except Exception as ex: msg = "Error creating Harvesting config:\n" msg += str(ex) raise RuntimeError(msg) process.source.fileNames.append(self.inputLFN) pklFile = open("RunDQMHarvestingCfg.pkl", "wb") psetFile = open("RunDQMHarvestingCfg.py", "w") try: pickle.dump(process, pklFile, protocol=0) psetFile.write("import FWCore.ParameterSet.Config as cms\n") psetFile.write("import pickle\n") psetFile.write("handle = open('RunDQMHarvestingCfg.pkl','rb')\n") psetFile.write("process = pickle.load(handle)\n") psetFile.write("handle.close()\n") psetFile.close() except Exception as ex: print("Error writing out PSet:") print(traceback.format_exc()) raise ex finally: psetFile.close() pklFile.close() cmsRun = "cmsRun -j FrameworkJobReport.xml RunDQMHarvestingCfg.py" print("Now do:\n%s" % cmsRun) if __name__ == '__main__': valid = ["scenario=", "run=", "dataset=", "global-tag=", "lfn=", "dqmio"] usage = """RunDQMHarvesting.py <options>""" try: opts, args = getopt.getopt(sys.argv[1:], "", valid) except getopt.GetoptError as ex: print(usage) print(str(ex)) sys.exit(1) harvester = RunDQMHarvesting() for opt, arg in opts: if opt == "--scenario": harvester.scenario = arg if opt == "--global-tag": harvester.globalTag = arg if opt == "--lfn" : harvester.inputLFN = arg if opt == "--run": harvester.run = arg if opt == "--dataset": harvester.dataset = arg if opt == "--dqmio": harvester.dqmio = True harvester()