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

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

more updates

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