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

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

additional documents

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
76for k in rq.grps.keys():
77  if k[0] != '_':
78    r = rq.grps[k]
79    if r[-3][0] != '_':
80      if r[-4] == 0:
81        if rq.vars.has_key(r[-3]):
82          nok1 += 1
83        else:
84          print 'NOT FOUND:',r
85          knf += 1
86      elif r[-4] == 1:
87        if rq.rqvg.has_key(r[-3]):
88          nok2 += 1
89        else:
90          print 'NOT FOUND:',r
91          knf += 1
92      else:
93        kmm += 1
94    else:
95      ##print '!GROUP: ',r
96      km += 1
97print 'CHECK.001.0004: on groupItems: %s,%s OK, %s missing reference, not found %s, bad "new" key %s ' % (nok1,nok2,km,knf,kmm)
98
99nok1 = 0
100nok2 = 0
101nok = 0
102km = 0
103kmm = 0
104knf = 0
105for k in rq.grps.keys():
106  if k[0] != '_':
107    r = rq.grps[k]
108## new variables
109    if r[-2] == 0:
110        if rq.vars.has_key(r[-1]):
111          nok1 += 1
112        else:
113          print 'NOT FOUND:',r
114          knf += 1
115## old vars
116    elif r[-2] == 1:
117        if rq.refti.has_key(r[-1]):
118          nok2 += 1
119        else:
120          print 'NOT FOUND:',r
121          knf += 1
122    else:
123        kmm += 1
124print '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)
125
126nok = 0
127nm = 0
128for k in rq.rqit.keys():
129  if k[0] != '_':
130    r = rq.rqit[k]
131    rid = r[3]
132    if rq.rqli.has_key(rid):
133      nok += 1
134    else:
135      nm += 1
136print 'CHECK.001.0006: on request links: %s OK, %s missing' % (nok,nm)
137
138nok = 0
139nm = 0
140nb = 0
141for k in rq.rqli.keys():
142  if k[0] != '_':
143    r = rq.rqli[k]
144    rid = r[-1]
145    if rid[0] != '_':
146      if rq.rqvg.has_key(rid):
147        nok += 1
148      else:
149        nm += 1
150    else:
151      nb += 1
152print 'CHECK.001.0007: on request links referencing to variable group: %s OK, %s missing, %s unset' % (nok,nm,nb)
153
Note: See TracBrowser for help on using the repository browser.