source: CMIP6dreqbuild/trunk/src/framework/ing02/exptLabEdit.py @ 1180

Subversion URL: http://proj.badc.rl.ac.uk/svn/exarch/CMIP6dreqbuild/trunk/src/framework/ing02/exptLabEdit.py@1206
Revision 1180, 2.6 KB checked in by mjuckes, 19 months ago (diff)

01.00.22 test

Line 
1
2
3import shelve, json
4import re
5from utils_wb import uniCleanFunc
6
7def findWholeWord(w):
8    return re.compile(r'\b({0})\b'.format(w)).search
9
10class exMap(object):
11  def __init__(self):
12    maps = json.load( open( 'inputs/exptNameMaps.json' ) )
13    desc = json.load( open( 'inputs/exptDesc.json' ) )
14    print maps.keys()
15    sh = shelve.open( 'exports/l1sh/experiment' )
16    ne = 0
17    nc = 0
18    cols = sh['__cols__']
19    doMap = False
20    doMap = True
21    il = cols.index( 'label' )
22    iu = cols.index( 'uid' )
23    id = cols.index( 'description' )
24    itt = cols.index( 'title' )
25    for k in sh.keys():
26      delt = False
27      inMulti = False
28      if k[0:2] != '__':
29        lab = sh[k][0]
30        rec = sh[k]
31        if lab in maps['maps']:
32           print k,lab,maps['maps'][lab]
33           ne += 1
34           rec[0] = maps['maps'][lab]
35           delt = True
36        if 'multi' in maps and lab in maps['multi']:
37          rset = []
38          inMulti = True
39          for l,u in maps['multi'][lab]:
40            u = str(u)
41            this = rec[:]
42            this[0] = l
43            this[iu] = str( u )
44            if l in desc['description']: 
45               this[id] = uniCleanFunc( desc['description'][l] )
46            if l in desc['title']: 
47               this[itt] = uniCleanFunc( desc['title'][l] )
48            if doMap:
49               print 'MULTI MAP: ',l,this
50               print rec, this
51               sh[u] = this
52          if doMap:
53            del sh[k]
54           
55        if doMap and not inMulti:
56             lab = rec[0]
57             if lab in desc['description']: 
58               rec[id] = uniCleanFunc( desc['description'][lab] )
59               delt = True
60             if lab in desc['title']: 
61               rec[itt] = uniCleanFunc( desc['title'][lab] )
62               delt = True
63             if delt:
64               sh[k] = rec
65
66    sh.close()
67    sh = shelve.open( 'exports/l1sh/requestItem' )
68    cols = sh['__cols__']
69    ic = cols.index( 'esidComment' )
70    print 'Comments::: '
71    rec = {}
72    for l in maps['maps']:
73      rec[l] = findWholeWord(l)
74
75    for k in sh.keys():
76      if k[0:2] != '__':
77        c = sh[k][ic]
78        n0 = 0
79        for l in maps['maps']:
80          if rec[l](c):
81             if doMap:
82               c1 = c.replace( l, maps['maps'][l] )
83               print k,l,maps['maps'][l], c, '-->', c1
84               c = c1
85               n0 += 1
86             else:
87               print k,l,maps['maps'][l], c
88             nc += 1
89        if n0 > 0:
90          reck = sh[k]
91          reck[ic] = c
92          sh[k] = reck
93
94    sh.close()
95    print ne,nc
96   
97e = exMap()
Note: See TracBrowser for help on using the repository browser.