Changeset 71


Ignore:
Timestamp:
16/10/13 23:21:53 (7 years ago)
Author:
astephen
Message:

Added new branch.

Location:
CCCC/branches/branch-as
Files:
2 added
2 edited
2 copied

Legend:

Unmodified
Added
Removed
  • CCCC/branches/branch-as/c4.py

    r68 r71  
    1  
     1#!/usr/bin/env python 
     2 
     3""" 
     4c4.py 
     5===== 
     6 
     7Command-line entry point for the CCCC quality checking tool. 
     8 
     9This module contains as set of classes that manage the process and loggging. 
     10 
     11The code depends on PCMDI's CDMS2 library (part of CDAT or CDAT-Lite). 
     12 
     13""" 
     14 
     15# Standard library imports 
     16import os, string, time, sys 
     17import logging 
     18 
     19# Third-party imports 
     20import cdms2 
     21 
     22# Local imports 
    223import utils_c4 as utils 
    324import config_c4 as config 
    4 import os, string, time 
    5 import logging 
    625 
    726reload( utils ) 
    8 import cdms2 
    927 
    1028vocabs = { 'variable':utils.mipVocab(), \ 
     
    2240#rcm_version_id = <RCMVersionID>                      
    2341 
    24 class dummy: 
     42class Dummy(object): 
     43   "A simple container class." 
    2544   pass 
    2645 
    27 class recorder: 
     46class Recorder(object): 
     47  "A class for recording the results of file checks." 
    2848 
    2949  def __init__(self,fileName,type='map'): 
     
    87107    self.records[fn] = record 
    88108 
    89 class checker: 
     109class FileChecker(object): 
     110  "Class for checking data files." 
     111 
    90112  def __init__(self): 
    91     self.info = dummy() 
     113    self.info = Dummy() 
    92114    self.calendar = 'None' 
    93115    self.cfn = utils.checkFileName(parent=self.info) 
     
    159181    self.errorCount = self.cfn.errorCount + self.cga.errorCount + self.cgd.errorCount + self.cgg.errorCount 
    160182 
    161 class c4_init: 
     183class C4Init(object): 
    162184 
    163185  def __init__(self): 
     
    235257    self.fHdlr.close() 
    236258 
    237 cc = checker() 
     259cc = FileChecker() 
    238260 
    239261cal = None 
    240262 
    241263if __name__ == '__main__': 
    242   import sys 
    243   c4i = c4_init() 
    244   rec = recorder( c4i.recordFile ) 
     264 
     265  c4i = C4Init() 
     266  rec = Recorder( c4i.recordFile ) 
    245267 
    246268  c4i.logger.info( 'Starting batch -- number of file: %s' % (len(c4i.flist)) ) 
     
    285307 
    286308  cc.info.log = c4i.logger 
    287   cbv.check( recorder=rec, calendar=cc.calendar) 
     309  cbv.check(recorder=rec, calendar=cc.calendar) 
    288310  rec.dumpAll() 
    289311  c4i.hdlr.close() 
  • CCCC/branches/branch-as/fcc_utils.py

    r60 r71  
    55## 
    66 
    7 class mipTableScan: 
     7class MipTableScan(object): 
    88 
    99  def __init__(self, vats = ['standard_name','long_name','units','cell_methods'] ): 
     
    106106## this class carries a logging method, and is used to carry information about datasets being parsed. 
    107107## 
    108 class qcHandler: 
     108class OLD_NOT_USED_qcHandler(object): 
     109 
    109110 
    110111  def __init__( self, qcc, log, baseDir, logPasses=True ): 
     
    179180    self.msgk[key] += 1 
    180181 
    181 class dirParser: 
     182class OLD_NOT_USED_dirParser: 
    182183 
    183184  def __init__(self, qcc, linksOnly=True): 
     
    353354          handler.datasets[k][dsId].append( (dir,f, handler.nofail, ns) ) 
    354355 
    355 class dataSetParser: 
     356class OLD_NOT_USED_dataSetParser: 
    356357 
    357358  def __init__(self,qcc, log, handler): 
     
    521522        
    522523 
    523 class dataset: 
     524class Dataset(object): 
     525   "A container class for a dataset." 
     526 
    524527   def __init__(self,name): 
    525528     self.name = name 
    526529 
    527 class qcConfigParse: 
     530class OLD_NOT_USED_qcConfigParse(object): 
     531  "A class to parse configuration files for the QC process." 
    528532 
    529533  def __init__( self, file, log=None ): 
     
    560564      elif l[0:6] == 'START ': 
    561565        sname = string.strip( string.split(l)[1] ) 
    562         self._parse_l0_section = section_parser_l0( self, sname ) 
     566        self._parse_l0_section = SectionParserL0( self, sname ) 
    563567        f = True 
    564568 
     
    573577     for s in requiredSections: 
    574578       assert s in self.sections.keys(), 'Required section %s not found in %s [parsing %s]' % (s, self.section.keys(),self.file) 
    575      self._parse_l1 = section_parser_l1( self ) 
     579     self._parse_l1 = SectionParserL1( self ) 
    576580     self._parse_l1.parse( 'GENERAL' ) 
    577581     self._parse_l1.parse( 'VOCABULARIES' ) 
     
    594598revsc = re.compile( 'validSectionCount,(.+)' ) 
    595599 
    596 class section_parser_l1: 
     600class SectionParserL1(object): 
    597601 
    598602  def __init__(self,parent): 
     
    727731          self.parent.vocab[id] = vlist[:] 
    728732          if id == 'mipVarAtts': 
    729             self.mipsc = mipTableScan( vlist ) 
     733            self.mipsc = MipTableScan( vlist ) 
    730734   
    731735  def parse_filename(self): 
    732736    sep = self.__get_match( refs, self.currentSection[1], 'File separator' ) 
    733737    nn = map( int, string.split( self.__get_match( revsc, self.currentSection[2], 'File separator' ),',') ) 
    734     self.parent.fileNameSegments = fileNameSegments( self.parent, sep, nn ) 
     738    self.parent.fileNameSegments = FileNameSegments( self.parent, sep, nn ) 
    735739    for l in self.currentSection[3:]: 
    736740       self.parent.fileNameSegments.add(l) 
     
    864868           self.datasetVersionMode.append( None ) 
    865869       elif bits[0] == 'datasetId': 
    866          thisDs = dataset(bits[1]) 
     870         thisDs = Dataset(bits[1]) 
    867871         thisDs.datasetIdMethod = bits[2] 
    868872         if bits[2] == 'prints': 
     
    871875         elif bits[2] == 'joinFileNameSegSlice': 
    872876           thisSlice = slice( int(bits[4]), int(bits[5]) ) 
    873            thisDs.getDatasetId = dsid1( thisSlice, bits[3] ).get 
     877           thisDs.getDatasetId = DSID1( thisSlice, bits[3] ).get 
    874878           thisDs.datasetIdArg = 'fileNameBits' 
    875879         elif bits[2] == 'cmip5': 
    876880           thisSlice = slice( int(bits[4]), int(bits[5]) ) 
    877            thisDs.getDatasetId = cmip5_dsid( thisSlice, bits[3] ).get 
     881           thisDs.getDatasetId = CMIP5DSID( thisSlice, bits[3] ).get 
    878882           thisDs.datasetIdArg = 'filePathBits' 
    879883         self.parent.datasets[bits[1]] = thisDs 
     
    907911          self.parent.datasets[bb[k]].child = self.parent.datasets[bb[k+1]] 
    908912           
    909 class dsid1: 
     913class DSID1(object): 
    910914 
    911915  def __init__(self,slice,sep): 
     
    916920    return string.join( x[self.slice], self.sep )  
    917921 
    918 class cmip5_dsid: 
     922class CMIP5DSID(object): 
    919923 
    920924  def __init__(self,slice,sep): 
     
    926930 
    927931 
    928 class get_trange: 
     932class GetTRange(object): 
    929933  
    930934  def __init__(self,pat,kseg): 
     
    974978    return self._get( l[self.kseg] ) 
    975979          
    976 class fileNameSegments: 
     980class FileNameSegments(object): 
     981 
    977982  def __init__(self, parent, sep, nn ): 
    978983    self.sep = sep 
     
    10011006    if bits[2] == 'TimeRange': 
    10021007       self.parent.hasTimeRange = True 
    1003        self.parent.timeRange = get_trange(regex,k) 
     1008       self.parent.timeRange = GetTRange(regex,k) 
    10041009 
    10051010  def finish(self): 
     
    12441249           return ('VALUE',bits[1]) 
    12451250 
    1246 class section_parser_l0: 
     1251class SectionParserL0(object): 
    12471252 
    12481253  def __init__(self,parent,sectionName): 
  • CCCC/branches/branch-as/utils_c4.py

    r69 r71  
    22import string, re, os, sys 
    33 
    4 from fcc_utils import mipTableScan 
    5  
    6 class reportSection: 
     4from fcc_utils import MipTableScan 
     5 
     6class ReportSection: 
    77 
    88  def __init__(self,id,cls,parent=None, description=None): 
     
    2020  def addSubSection( self, id, cls, description=None): 
    2121    assert not self.closed, 'Attempt to add sub-section to closed report section' 
    22     self.subsections.append( reportSection(id, cls, parent=self, description=description )  ) 
     22    self.subsections.append( ReportSection(id, cls, parent=self, description=description )  ) 
    2323    self.auditDone = False 
    2424    return self.subsections[-1] 
     
    564564 
    565565  def __init__(self): 
    566      ms = mipTableScan() 
     566     ms = MipTableScan() 
    567567     dir = 'cordex_vocabs/mip/' 
    568568     self.varInfo = {} 
Note: See TracChangeset for help on using the changeset viewer.