Skip to content
Snippets Groups Projects
Forked from atlas / athena
143069 commits behind the upstream repository.
  • Scott Snyder's avatar
    6c62766a
    'Update tests for last changes.' (PyJobTransforms-03-00-05) · 6c62766a
    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
    6c62766a
    History
    'Update tests for last changes.' (PyJobTransforms-03-00-05)
    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
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))