Forked from
atlas / athena
143069 commits behind the upstream repository.
-
Scott Snyder authored
2016-05-06 scott snyder <snyder@bnl.gov> * Tagging PyJobTransforms-03-00-05. * test/test_trfReports.py, test/test_trfArgs.py: Update for last changes. 2016-04-29 Graeme Stewart <graeme.andrew.stewart@cern.ch> * python/trfReports.py - Remove the ~useless "argValues" section from the job report - Remove the ~useless 'integrity' and 'file_type'sections from subfile reports - Update report number to 2.0.0 2016-04-28 Graeme Stewart <graeme.andrew.stewart@cern.ch> * python/trfUtils.py - Minor tweaks on reported environment variables for CMake builds 2016-04-28 Graeme Stewart <graeme.andrew.stewart@cern.ch> * python/trfUtils.py - Update asetupReport to use "lstags" (works for both cmt and cmake) 2016-04-27 Graeme Stewart <graeme.andrew.stewart@cern.ch> ... (Long ChangeLog diff - truncated) Former-commit-id: 00312877a3f91ecfa3d4bc19d289cf1416509530
Scott Snyder authored2016-05-06 scott snyder <snyder@bnl.gov> * Tagging PyJobTransforms-03-00-05. * test/test_trfReports.py, test/test_trfArgs.py: Update for last changes. 2016-04-29 Graeme Stewart <graeme.andrew.stewart@cern.ch> * python/trfReports.py - Remove the ~useless "argValues" section from the job report - Remove the ~useless 'integrity' and 'file_type'sections from subfile reports - Update report number to 2.0.0 2016-04-28 Graeme Stewart <graeme.andrew.stewart@cern.ch> * python/trfUtils.py - Minor tweaks on reported environment variables for CMake builds 2016-04-28 Graeme Stewart <graeme.andrew.stewart@cern.ch> * python/trfUtils.py - Update asetupReport to use "lstags" (works for both cmt and cmake) 2016-04-27 Graeme Stewart <graeme.andrew.stewart@cern.ch> ... (Long ChangeLog diff - truncated) Former-commit-id: 00312877a3f91ecfa3d4bc19d289cf1416509530
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
trfFileValidationFunctions.py 3.02 KiB
# Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
## @package PyJobTransforms.trfFileValidationFunctions
# @brief Transform file validation functions
# @author atlas-comp-transforms-dev@cern.ch
# @version $Id: trfUtils.py 578615 2014-01-15 21:22:05Z wbreaden $
import logging
msg = logging.getLogger(__name__)
import PyJobTransforms.trfExceptions as trfExceptions
## @brief Integrity function for file class argPOOLFile, argHITSFile and argRDOFile
def returnIntegrityOfPOOLFile(fname):
from PyJobTransforms.trfValidateRootFile import checkFile
rc = checkFile(fileName = fname, type = 'event', requireTree = True)
if rc == 0:
return (True, "integrity of {fileName} good".format(fileName = str(fname)))
else:
return (False, "integrity of {fileName} bad: return code: {integrityStatus}".format(fileName = str(fname), integrityStatus = rc))
## @brief Integrity function for file class argNTUPFile
def returnIntegrityOfNTUPFile(fname):
from PyJobTransforms.trfValidateRootFile import checkFile
rc = checkFile(fileName = fname, type = 'basket', requireTree = False)
if rc == 0:
return (True, "integrity of {fileName} good".format(fileName = str(fname)))
else:
return (False, "integrity of {fileName} bad: return code: {integrityStatus}".format(fileName = str(fname), integrityStatus = rc))
## @brief Integrity function for file class argBSFile
def returnIntegrityOfBSFile(fname):
try:
from PyJobTransforms.trfUtils import call
rc = call(["AtlListBSEvents.exe", "-c", fname],
logger = msg,
message = "Report by AtlListBSEvents.exe: ",
timeout = None
)
except trfExceptions.TransformTimeoutException:
return False
if rc == 0:
return (True, "integrity of {fileName} good".format(fileName = str(fname)))
else:
return (False, "integrity of {fileName} bad: return code: {integrityStatus}".format(fileName = str(fname), integrityStatus = rc))
### @brief Integrity function for file class argTAGFile
def returnIntegrityOfTAGFile(fname):
from PyJobTransforms.trfFileUtils import AthenaLiteFileInfo
dictionaryOfAthenaFileInfo = AthenaLiteFileInfo(fname, "TAG", retrieveKeys = ['nentries',])
msg.debug("dictionary of Athena file information: {a}".format(a = dictionaryOfAthenaFileInfo))
eventCount = dictionaryOfAthenaFileInfo[fname]['nentries']
if eventCount is None:
return (False, "integrity of {fileName} bad: got a bad event count in {fileName}: {eventCount}".format(fileName = str(fname), eventCount = eventCount))
else:
return (True, "integrity of {fileName} good".format(fileName = str(fname)))
## @brief Integrity function for file class argHISTFile
def returnIntegrityOfHISTFile(fname):
rc = 0 # (default behaviour)
if rc == 0:
return (True, "integrity of {fileName} good".format(fileName = str(fname)))
else:
return (False, "integrity of {fileName} bad: return code: {integrityStatus}".format(fileName = str(fname), integrityStatus = rc))