source: CMIP6dreqbuild/trunk/srcMisc/scansh.py @ 397

Subversion URL: http://proj.badc.rl.ac.uk/svn/exarch/CMIP6dreqbuild/trunk/srcMisc/scansh.py@756
Revision 397, 3.3 KB checked in by mjuckes, 5 years ago (diff)

various

Line 
1
2import shelve
3
4odir = 'sh20150708'
5from scansh_cfg import odir
6odir = 'sh20150827'
7def sopen( id ):
8  sh = shelve.open( '%s/%s' % (odir,id ) )
9  print 'Openned %s' % str( sh['__info__'] )
10  print sh['__cols__']
11  return sh
12
13class rqc(object):
14
15  def __init__(self):
16    self.refti = sopen( 'refTableItems' )
17    self.revti = sopen( 'revTabItems' )
18    self.vars = sopen( 'cmipVars' )
19    self.grps = sopen( 'groupItems' )
20    self.rqit = sopen( 'requestItems' )
21    self.rqli = sopen( 'requestLinks' )
22    self.rqvg = sopen( 'requestVarGroup' )
23
24rq = rqc()
25
26def sampl(sh, ns=10):
27  k = 0
28  ks = sh.keys()[:100]
29  while k < ns:
30    if ks[k][0] != '_':
31      print sh[ ks[k] ]
32      k += 1
33
34ki=0
35km=0
36nok = 0
37kn = 0
38for k in rq.revti.keys():
39  if k[0] != '_':
40    u = rq.revti[k][3]
41    if u == None:
42      km += 1
43    elif u == '__inc__':
44      ki += 1
45## new OMIP variables are mixed up with revised old variables .......
46    elif u == '__new__':
47      kn += 1
48    elif not rq.refti.has_key(u):
49      print 'ERROR.010.0001: look up key not found: ', rq.revti[k]
50    else:
51      nok += 1
52
53print 'CHECK.001.0002: on revTabItems: %s OK, %s missing reference, %s includes [Not managed yet]' % (nok,km, ki)
54 
55nok = 0
56km = 0
57knf = 0
58for k in rq.refti.keys():
59  if k[0] != '_':
60    r = rq.refti[k]
61    if r[-1] != '__none__':
62      if rq.vars.has_key(r[-4]):
63        nok += 1
64      else:
65        print 'NOT FOUND:',r
66        knf += 1
67    else:
68      km += 1
69print 'CHECK.001.0003: on refTabItems: %s OK, %s missing reference, not found %s' % (nok,km,knf)
70
71nok1 = 0
72nok2 = 0
73nok = 0
74km = 0
75kmm = 0
76knf = 0
77nn0 = 0
78nn1 = 0
79for k in rq.grps.keys():
80  if k[0] != '_':
81    r = rq.grps[k]
82    if r[-3][0] != '_':
83      if r[-4] == 0:
84        nn0 += 1
85        if rq.vars.has_key(r[-3]):
86          nok1 += 1
87        else:
88          print 'NOT FOUND:',r
89          knf += 1
90      elif r[-4] == 1:
91        nn1 += 1
92        if rq.rqvg.has_key(r[-3]):
93          nok2 += 1
94        else:
95          print 'NOT FOUND:',r
96          knf += 1
97      else:
98        kmm += 1
99    else:
100      ##print '!GROUP: ',r
101      km += 1
102print 'CHECK.001.0004: on groupItems: %s,%s OK, %s missing reference, not found %s, bad "new" key %s [%s,%s] ' % (nok1,nok2,km,knf,kmm,nn0,nn1)
103
104nok1 = 0
105nok2 = 0
106nok = 0
107km = 0
108kmm = 0
109knf = 0
110for k in rq.grps.keys():
111  if k[0] != '_':
112    r = rq.grps[k]
113## new variables
114    if r[-2] == 0:
115        if rq.vars.has_key(r[-1]):
116          nok1 += 1
117        else:
118          print 'NOT FOUND:',r
119          knf += 1
120## old vars
121    elif r[-2] == 1:
122        if rq.refti.has_key(r[-1]):
123          nok2 += 1
124        else:
125          print 'NOT FOUND:',r
126          knf += 1
127    else:
128        kmm += 1
129print 'CHECK.001.0005: on groupItems -- for variable defs: %s,%s OK, %s missing reference, not found %s, bad "new" key %s ' % (nok1,nok2,km,knf,kmm)
130
131nok = 0
132nm = 0
133for k in rq.rqit.keys():
134  if k[0] != '_':
135    r = rq.rqit[k]
136    rid = r[3]
137    if rq.rqli.has_key(rid):
138      nok += 1
139    else:
140      nm += 1
141print 'CHECK.001.0006: on request links: %s OK, %s missing' % (nok,nm)
142
143nok = 0
144nm = 0
145nb = 0
146for k in rq.rqli.keys():
147  if k[0] != '_':
148    r = rq.rqli[k]
149    rid = r[-1]
150    if rid[0] != '_':
151      if rq.rqvg.has_key(rid):
152        nok += 1
153      else:
154        nm += 1
155    else:
156      nb += 1
157print 'CHECK.001.0007: on request links referencing to variable group: %s OK, %s missing, %s unset' % (nok,nm,nb)
158
Note: See TracBrowser for help on using the repository browser.