Changeset 987


Ignore:
Timestamp:
26/04/17 10:18:46 (3 years ago)
Author:
mjuckes
Message:

minor adjust to dreq.py to make configOnly option work smoothly

File:
1 edited

Legend:

Unmodified
Added
Removed
  • CMIP6dreqbuild/trunk/src/framework/dreqPy/dreq.py

    r978 r987  
    475475    self.configOnly = configOnly 
    476476    self.coll = {} 
     477    self.recordAttributeDefn = {} 
    477478 
    478479    self.nts = collections.namedtuple( 'sectdef', ['tag','label','title','id','itemLabelMode','level','maxOccurs','labUnique','uid','description'] ) 
     
    534535    self.etree = False 
    535536    self.etree = True 
    536     if self.etree: 
    537       import xml.etree.cElementTree as cel 
     537    self.ns = None 
     538    if not self.configOnly: 
     539      if self.etree: 
     540        import xml.etree.cElementTree as cel 
    538541       
    539       if not pythonPre27: 
    540         ## this for of namespace registration not available in 2.6 
    541         ## absence of registration means module cannot write data exactly as read. 
    542         ## 
    543         cel.register_namespace('', "urn:w3id.org:cmip6.dreq.dreq:a") 
    544         cel.register_namespace('pav', "http://purl.org/pav/2.3") 
    545  
    546       if not self.strings: 
    547         if python2: 
    548           parser = getParser()() 
    549           self.contentDoc = cel.parse( self.vsamp, parser=parser ) 
     542        if not pythonPre27: 
     543          ## this for of namespace registration not available in 2.6 
     544          ## absence of registration means module cannot write data exactly as read. 
     545          ## 
     546          cel.register_namespace('', "urn:w3id.org:cmip6.dreq.dreq:a") 
     547          cel.register_namespace('pav', "http://purl.org/pav/2.3") 
     548 
     549        if not self.strings: 
     550          if python2: 
     551            parser = getParser()() 
     552            self.contentDoc = cel.parse( self.vsamp, parser=parser ) 
     553          else: 
     554            self.contentDoc = cel.parse( self.vsamp ) 
     555 
     556          root = self.contentDoc.getroot() 
    550557        else: 
    551           self.contentDoc = cel.parse( self.vsamp ) 
    552  
    553         root = self.contentDoc.getroot() 
     558          root = cel.fromstring(self.vsamp) 
     559 
     560        self.docs[fn] = (root, self.contentDoc) 
     561        bs = root.tag.split( '}' ) 
     562        if len( bs ) > 1: 
     563          self.ns = bs[0] + '}' 
     564        else: 
     565          self.ns = None 
     566        vl = root.findall( './/{http://purl.org/pav/2.3}version' ) 
     567        if self.version != None: 
     568          if vl[0].text != self.version: 
     569            print ('WARNING: version difference between %s [%s] and %s [%s]' % (self.docl[0][0],self.version,thisdoc,vl[0].text) ) 
     570        else: 
     571          self.version = vl[0].text 
     572        self.parent_map = dict((c, p) for p in root.getiterator() for c in p) 
    554573      else: 
    555         root = cel.fromstring(self.vsamp) 
    556       ##bs = string.split( root.tag, '}' ) 
    557       self.docs[fn] = (root, self.contentDoc) 
    558       bs = root.tag.split( '}' ) 
    559       if len( bs ) > 1: 
    560         self.ns = bs[0] + '}' 
    561       else: 
     574        if self.strings: 
     575          self.contentDoc = xml.dom.minidom.parseString( self.vsamp  ) 
     576        else: 
     577          self.contentDoc = xml.dom.minidom.parse( self.vsamp ) 
     578 
     579          vl = self.contentDoc.getElementsByTagName( 'prologue' ) 
     580          v = vl[0].getElementsByTagName( 'pav:version' ) 
     581          self.version = v[0].firstChild.data 
    562582        self.ns = None 
    563       vl = root.findall( './/{http://purl.org/pav/2.3}version' ) 
    564       if self.version != None: 
    565         if vl[0].text != self.version: 
    566           print ('WARNING: version difference between %s [%s] and %s [%s]' % (self.docl[0][0],self.version,thisdoc,vl[0].text) ) 
    567       else: 
    568         self.version = vl[0].text 
    569       self.parent_map = dict((c, p) for p in root.getiterator() for c in p) 
    570     else: 
    571       if self.strings: 
    572         self.contentDoc = xml.dom.minidom.parseString( self.vsamp  ) 
    573       else: 
    574         self.contentDoc = xml.dom.minidom.parse( self.vsamp ) 
    575  
    576         vl = self.contentDoc.getElementsByTagName( 'prologue' ) 
    577         v = vl[0].getElementsByTagName( 'pav:version' ) 
    578         self.version = v[0].firstChild.data 
    579       self.ns = None 
    580583 
    581584    vl = doc.getElementsByTagName( 'table' ) + doc.getElementsByTagName( 'annextable' ) 
     
    641644        self.coll[sct].attDefn[k] = ec[k] 
    642645 
    643     self.recordAttributeDefn = tables 
     646    for k in tables: 
     647      self.recordAttributeDefn[k] = tables[k] 
    644648 
    645649    if self.configOnly: 
Note: See TracChangeset for help on using the changeset viewer.