Changeset 381 for CMIP6dreq/trunk


Ignore:
Timestamp:
04/09/15 13:56:24 (5 years ago)
Author:
mjuckes
Message:

cleaned

File:
1 edited

Legend:

Unmodified
Added
Removed
  • CMIP6dreq/trunk/src/scanDreq.py

    r380 r381  
    3838varRefs = makeVarRefs( inx.uuid, inx.var, inx.iref_by_uuid) 
    3939 
    40 class updates(object): 
    41   def __init__(self,fndup,fnmult,idir='rev1'): 
    42     assert os.path.isdir( idir ), 'Directory %s not found' % idir 
    43     self.fdup = '%s/%s' % (idir,fndup) 
    44     self.fmult = '%s/%s' % (idir,fnmult) 
    45     for p in [self.fdup,self.fmult]: 
    46       assert os.path.isfile( p ), 'File %s not found' % p 
    47     self.repl = {} 
    48     self.upd = {} 
    49     self.twins = [] 
    50     self.ddel = {} 
    51  
    52   def scandup(self): 
    53     ii = open( self.fdup ).readlines() 
    54     nn = (len(ii)-1)/2 
    55     for i in range(nn): 
    56       l1 = string.split( ii[i*2+1], '\t' ) 
    57       l2 = string.split( ii[i*2+2], '\t' ) 
    58       xx = l1[8:10] 
    59       yy = l2[8:10] 
    60       if xx[1] == '' and yy[1] == xx[0]: 
    61         ths = 0 
    62         assert not self.repl.has_key( yy[0] ), 'duplicate replacement request for %s' % yy[0] 
    63         self.repl[ yy[0] ] = yy[1]  
    64       elif yy[1] == '' and xx[1] == yy[0]: 
    65         ths = 1 
    66         assert not self.repl.has_key( xx[0] ), 'duplicate replacement request for %s' % xx[0] 
    67         self.repl[ xx[0] ] = xx[1]  
    68       elif l1[10] == 'twin' and  l2[10] == 'twin': 
    69         ths = 2 
    70         self.twins.append( l1[8] ) 
    71         self.twins.append( l2[8] ) 
    72       elif l1[10] == 'inc' and  l2[10] == 'inc': 
    73         ths = 3 
    74         self.ddel[ l1[8] ] = 'inc' 
    75         self.ddel[ l2[8] ] = 'inc' 
    76       else: 
    77         ths = -1 
    78         print 'ERROR.xxx.0001: Match failed' 
    79         print l1 
    80         print l2 
    81         assert False 
    82  
    83   def scanmult(self): 
    84     ii = open( self.fmult ).readlines() 
    85     nn = (len(ii)-1)/3 
    86     for i in range(nn): 
    87       l1 = string.split( ii[i*3+1], '\t' ) 
    88       l2 = string.split( ii[i*3+2], '\t' ) 
    89       l3 = string.split( ii[i*3+3], '\t' ) 
    90       yy = [l1[9],l2[9],l3[9]] 
    91       xx = [l1[8],l2[8],l3[8]] 
    92       zz = (l1,l2,l3) 
    93       for j in range(3): 
    94         if yy[j] != '': 
    95           assert yy[j] in xx, 'Invalid replacement option, %s' % yy[j] 
    96           assert  not self.repl.has_key( xx[j] ), 'duplicate replacement request for %s' % xx[j] 
    97           self.repl[ xx[j] ] = yy[j] 
    98         elif zz[j][10] == 'twin': 
    99           self.twins.append( zz[j][8] ) 
    100         elif zz[j][11] == 'update': 
    101           tags = map( string.strip, string.split( zz[j][13], ',' ) ) 
    102           self.upd[ xx[j] ] = { 'provNote':zz[j][12], 'tags':tags, 'label':zz[j][0], 'title':zz[j][1] } 
    103  
    104 up = updates('varDup_20150724.csv', 'varMult_20150725.csv') 
    105 ##up.scandup() 
    106 up.scanmult() 
    107  
    108 urep = False 
    109 urep = True 
    110 if urep: 
    111   oo = open( 'uuidreplace.csv', 'w' ) 
    112   oo2 = open( 'uuidremove.csv', 'w' ) 
    113   for k in up.repl.keys(): 
    114     if inx.iref_by_uuid.has_key(k): 
    115       kn = up.repl[k] 
    116       for tag,ki  in inx.iref_by_uuid[k]: 
    117          oo.write( '%s\t%s\t%s\t%s\t%s\t%s\t%s\n' % (k,kn,tag,ki, inx.uuid[k][1].label,  inx.uuid[kn][1].label, inx.uuid[ki][1].label) ) 
    118     else: 
    119       oo2.write( k + '\n' ) 
    120   oo.close() 
    121   oo2.close() 
    122   oo = open( 'uuidupdate.csv', 'w' ) 
    123   for k in up.upd.keys(): 
    124       ee = up.upd[k] 
    125       oo.write( string.join( [k,ee['provNote'],string.join(ee['tags']),ee['label'], ee['title'] ], '\t') + '\n' ) 
    126   oo.close() 
    127 else: 
    128   oo2 = open( 'uuidremove2.csv', 'w' ) 
    129   for i in dq.coll['var'].items: 
    130     if not inx.iref_by_uuid.has_key(i.uuid): 
    131       oo2.write( string.join( [i.uuid,i.label,i.title,i.prov,i.description], '\t') + '\n' ) 
    132   oo2.close() 
    13340 
    13441### check back references. 
Note: See TracChangeset for help on using the changeset viewer.