Changeset 77
- Timestamp:
- 22/10/13 14:04:47 (7 years ago)
- Location:
- CCCC/trunk
- Files:
-
- 1 added
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
CCCC/trunk/utils_c4.py
r76 r77 1 1 2 import string, re, os, sys 2 import string, re, os, sys, traceback 3 3 4 4 from fcc_utils import mipTableScan … … 126 126 127 127 def logMessage(self, msg, error=False ): 128 if self.parent .log != None:128 if self.parent != None and self.parent.log != None: 129 129 if error: 130 130 self.parent.log.error( msg ) … … 135 135 136 136 def log_exception( self, msg): 137 if self.parent .log != None:137 if self.parent != None and self.parent.log != None: 138 138 self.parent.log.error("Exception has occured" ,exc_info=1) 139 139 else: … … 216 216 checkTrangeLen = True 217 217 self.domain = self.fnParts[1] 218 self.freq = self.fnParts[7]219 218 elif self.cls == 'SPECS': 220 219 self.domain = None 221 self.freq = self.fnParts[1]222 220 self.fnPartsOkLen = [6,7] 223 221 self.fnPartsOkFixedLen = [6,] 224 222 self.fnPartsOkUnfixedLen = [7,] 225 223 checkTrangeLen = False 224 226 225 self.test( len(bits) in self.fnPartsOkLen, 'File name not parsed in %s elements [%s]' % (str(self.fnPartsOkLen),str(bits)), abort=True ) 226 227 if self.cls == 'CORDEX': 228 self.freq = self.fnParts[7] 229 elif self.cls == 'SPECS': 230 self.freq = self.fnParts[1] 227 231 228 232 self.var = self.fnParts[0] … … 250 254 self.checkId, ok = ('004',True) 251 255 if len(self.fnParts) == 9 and checkTrangeLen: 252 ltr = { 'mon':6, 'sem':6, 'day':8, '3hr': 10, '6hr':10 }256 ltr = { 'mon':6, 'sem':6, 'day':8, '3hr':[10,12], '6hr':10 } 253 257 ok &=self.test( self.freq in ltr.keys(), 'Frequency [%s] not recognised' % self.freq, part=True ) 254 258 if ok: 255 msg = 'Length of time range parts [%s,%s] not equal to required length [%s] for frequency %s' % (self.fnTimeParts[0],self.fnTimeParts[1],ltr[self.freq],self.freq) 256 ok &= self.test( len(self.fnTimeParts[0]) == ltr[self.freq], msg, part=True ) 259 if type( ltr[self.freq] ) == type(0): 260 msg = 'Length of time range parts [%s,%s] not equal to required length [%s] for frequency %s' % (self.fnTimeParts[0],self.fnTimeParts[1],ltr[self.freq],self.freq) 261 ok &= self.test( len(self.fnTimeParts[0]) == ltr[self.freq], msg, part=True ) 262 elif type( ltr[self.freq] ) in [type([]),type( () )]: 263 msg = 'Length of time range parts [%s,%s] not in acceptable list [%s] for frequency %s' % (self.fnTimeParts[0],self.fnTimeParts[1],str(ltr[self.freq]),self.freq) 264 ok &= self.test( len(self.fnTimeParts[0]) in ltr[self.freq], msg, part=True ) 257 265 258 266 if ok: … … 322 330 self.checkId = '004' 323 331 m = [] 324 reqAts = self.requiredVarAttributes 332 reqAts = self.requiredVarAttributes[:] 325 333 if varGroup != 'fx': 326 334 reqAts.append( 'cell_methods' ) … … 709 717 self.ee = ee 710 718 711 def check(self, recorder=None,calendar='None' ):719 def check(self, recorder=None,calendar='None',norun=False): 712 720 self.errorCount = 0 713 721 self.recorder=recorder … … 717 725 else: 718 726 self.enddec = 31 719 720 self.runChecks() 727 mm = { 'enddec':self.enddec } 728 self.pats = {'mon':('(?P<d>[0-9]{3})101','(?P<e>[0-9]{3})012'), \ 729 'sem':('(?P<d>[0-9]{3})012','(?P<e>[0-9]{3})011'), \ 730 'day':('(?P<d>[0-9]{3}[16])0101','(?P<e>[0-9]{3}[50])12%(enddec)s' % mm), \ 731 'subd':('(?P<d>[0-9]{4})0101(?P<h1>[0-9]{2})(?P<mm>[30]0){0,1}$', '(?P<e>[0-9]{4})12%(enddec)s(?P<h2>[0-9]{2})([30]0){0,1}$' % mm ), \ 732 'subd2':('(?P<d>[0-9]{4})0101(?P<h1>[0-9]{2})', '(?P<e>[0-9]{4})010100' ) } 733 734 if not norun: 735 self.runChecks() 721 736 722 737 def checkTrange(self): … … 731 746 732 747 def checkThisTrange( self, tt, group, var): 733 mm = { 'enddec':self.enddec }734 pats = {'mon':('(?P<d>[0-9]{3})101','(?P<e>[0-9]{3})012'), \735 'sem':('(?P<d>[0-9]{3})012','(?P<e>[0-9]{3})011'), \736 'day':('(?P<d>[0-9]{3}[16])0101','(?P<e>[0-9]{3}[50])12%(enddec)s' % mm), \737 'subd':('(?P<d>[0-9]{4})0101(?P<h1>[0-9]{2})', '(?P<e>[0-9]{4})12%(enddec)s(?P<h2>[0-9]{2})' % mm ), \738 'subd2':('(?P<d>[0-9]{4})0101(?P<h1>[0-9]{2})', '(?P<e>[0-9]{4})010100' ) }739 748 740 749 if group in ['3hr','6hr']: … … 742 751 else: 743 752 kg = group 744 ps = pats[kg]753 ps = self.pats[kg] 745 754 rere = (re.compile( ps[0] ), re.compile( ps[1] ) ) 746 755
Note: See TracChangeset
for help on using the changeset viewer.