source: CMIP6dreqbuild/trunk/src/framework/ing02/appendChoice.py @ 1039

Subversion URL: http://proj.badc.rl.ac.uk/svn/exarch/CMIP6dreqbuild/trunk/src/framework/ing02/appendChoice.py@1149
Revision 1039, 2.7 KB checked in by mjuckes, 3 years ago (diff)

additional input streams

Line 
1
2from utils_wb import workbook
3import shelve
4
5
6from utils_wb import uniCleanFunc
7
8def findWholeWord(w):
9    return re.compile(r'\b({0})\b'.format(w)).search
10
11class editChoice(object):
12  def __init__(self):
13    self._loadCmv()
14    self.shvarc = shelve.open( 'exports/l1sh/varChoice' )
15    print self.shvarc['__cols__']
16    self.shvarcl = shelve.open( 'exports/l1sh/varChoiceLinkC' )
17    print self.shvarcl['__cols__']
18    self.shvarcf = shelve.open( 'exports/l1sh/modelConfig' )
19    print self.shvarcf['__cols__']
20##[u'label', u'title', u'uid', u'choiceClass', u'description', u'optionList', u'varList']
21##[u'label', u'title', u'uid', u'cfg', u'cfgid', u'cid', u'vid']
22##[u'label', u'title', u'uid', u'MIPs', u'range', u'type', u'usage']
23
24  def addRec( self, t ):
25    assert len(t) == 12, 'Bad row length: %s' % str( t )
26    label, titlec, usage, titlecf, desccf, vart, varf, mips, uidt, uidf, uidcf, uidc = t
27    s = set( [str(x.split('.')[0]) for x in [vart,varf] ] )
28    varlist = ' '.join( sorted( list( s ) ) )
29    rcf = [label, titlecf, uidcf, mips, 'xs:boolean', 'capability', usage ]
30    rc = [label, titlec, uidc, 'ConfigurationOptionSet', desccf, '', varlist]
31    vlt, mtt = vart.split( '.' )
32    vlf, mtf = varf.split( '.' )
33    clt = ['%s-%s' % (vlt, mtt), vart, uidt, "True", uidcf, uidc, self.cmv[vart] ]
34    clf = ['%s-%s' % (vlf, mtf), varf, uidf, "False", uidcf, uidc, self.cmv[varf] ]
35    self.shvarc = shelve.open( 'exports/l1sh/varChoice' )
36    self.shvarcl[uidt] = clt
37    self.shvarcl[uidf] = clf
38    self.shvarcf[uidcf] = rcf
39    self.shvarc[uidc] = rc
40    print rc
41
42  def _loadCmv(self):
43    shcmv = shelve.open( 'exports/l1sh/CMORvar' )
44    ##sh = shelve.open( 'exports/l1sh/CMORvar' )
45    ##shcmv = shelve.open( 'exports/l1sh/CMORvar' )
46    cols = shcmv['__cols__']
47    ##print cols
48    il = cols.index( 'label' )
49    iu = cols.index( 'uid' )
50    it = cols.index( 'mipTable' )
51    self.cmv = dict()
52    for k in shcmv.keys():
53      if k[0] != '_':
54        self.cmv[ '%s.%s' % (shcmv[k][il],shcmv[k][it]) ] = shcmv[k][iu]
55    shcmv.close()
56
57  def checkCmv(self,k):
58    return k in  self.cmv
59
60ec = editChoice()
61
62wb = workbook( 'inputs/dreq_choice_elements_extra.xls' )
63sht = wb.book.sheet_by_name( 'ConfigurationOptionSet' )
64## ModelCfg     Title (choice)  Usage (choice)  Title (cfg)     Description (cfg)       TRUE    FALSE   uidt    uidf    uidcfg  uidch
65for i in range( 4,sht.nrows):
66  t = tuple( [str(x.value) for x in sht.row(i)] )
67  assert len(t) == 12, 'Bad row length: %s' % str( t )
68  label, titlec, usage, titlecf, desccf, vart, varf, mips, uidt, uidf, uidcf, uidc = t
69  print t
70  for v in [vart,varf]:
71    if not ec.checkCmv( v ):
72      print 'FAIL: %s not found' % v
73    else:
74      print 'OK: %s found' % v
75  ec.addRec( t )
76
77
Note: See TracBrowser for help on using the repository browser.