source: CMIP6dreqbuild/trunk/src/workbook/scansh.py @ 382

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

misc

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