Ignore:
Timestamp:
08/12/15 22:01:05 (6 years ago)
Author:
mjuckes
Message:

misc

File:
1 edited

Legend:

Unmodified
Added
Removed
  • CMIP6dreqbuild/trunk/src/framework/vrev.py

    r505 r511  
    22import operator 
    33from dreqPy import dreq 
     4import collections 
    45 
    56class checkVar(object): 
     
    6465## filter out the ones whch link to a remark 
    6566 
     67# s0: set of requestVars 
     68 
    6669    s0 = set( [i for i in s if dq.inx.uid[dq.inx.uid[i].vgid]._h.label != 'remarks' ] ) 
    6770 
    6871## set of request groups 
     72## dictionary, keyed on variable group uid, with values set to priority of variable 
     73## 
    6974 
    70     s1  = set( [dq.inx.uid[i].vgid for i in s0 ] ) 
    71  
    72     ll = [set(dq.inx.iref_by_sect[i].a['requestLink']) for i in s1 if dq.inx.iref_by_sect[i].a.has_key('requestLink')] 
    73     if len(ll) == 0: 
    74       return set() 
    75  
    76     s2 = reduce( operator.or_, ll)  
     75    cc1 = collections.defaultdict( set ) 
     76    for i in s0: 
     77      cc1[ dq.inx.uid[i].vgid ].add( dq.inx.uid[i].priority ) 
     78    ##s1  = set( [dq.inx.uid[i].vgid for i in s0 ] ) 
     79     
     80    s2 = set() 
     81    for i in cc1: 
     82      if dq.inx.iref_by_sect[i].a.has_key('requestLink'): 
     83        for l in dq.inx.iref_by_sect[i].a['requestLink']: 
     84          lr = dq.inx.uid[l] 
     85          if lr.opt == 'priority': 
     86            p = int( float( lr.opar ) ) 
     87            if max( cc1[i] ) <= p: 
     88              s2.add(l) 
     89          else: 
     90            s2.add( l ) 
     91    ##ll = [set(dq.inx.iref_by_sect[i].a['requestLink']) for i in cc1 if dq.inx.iref_by_sect[i].a.has_key('requestLink')] 
     92    ##if len(ll) == 0: 
     93      ##return set() 
     94## 
     95    ##s2 = reduce( operator.or_, ll)  
     96    if len( s2 ) == 0: 
     97      if byBoth: 
     98        return (set(),set()) 
     99      else: 
     100        return s2 
    77101 
    78102    if byBoth or not byExpt: 
Note: See TracChangeset for help on using the changeset viewer.