Changeset 1303


Ignore:
Timestamp:
18/01/19 15:51:36 (4 months ago)
Author:
mjuckes
Message:

adding miplist.py

Location:
CMIP6dreqbuild/trunk/src/framework/scripts
Files:
2 added
1 edited

Legend:

Unmodified
Added
Removed
  • CMIP6dreqbuild/trunk/src/framework/scripts/slist.py

    r1275 r1303  
    11 
     2import collections 
    23from utils import dreq, collect 
    34dq = dreq.loadDreq() 
    45collect.add( dq ) 
    56 
     7class Stabs(object): 
     8  def __init__(self,dq): 
     9    self.dq = dq 
     10    self.es = dict() 
     11 
     12## load in description ... which doesn't ake it into the main structure ... yet 
     13    self.es2 = dict() 
     14    for t in dq.c.ttl2: 
     15      self.es2[t.uid] = dq.c._desc.get( t.label, '' ) 
     16 
     17    self.cc = collections.defaultdict(dict) 
     18    for i in dq.coll['__sect__'].items: 
     19      self.es[i.label] = i 
     20    for i in dq.coll['__main__'].items: 
     21      a,b = i.uid.split( '::' ) 
     22      x,y = b.split('.') 
     23      self.cc[x][y] = i 
     24 
     25    ee = dict() 
     26    oo = open( 'inputs.texlet', 'w' ) 
     27    for s in dq.coll.keys(): 
     28      if s[0] != '_': 
     29        if s in self.cc: 
     30          ee[ self.es[s].title ] = s 
     31        else: 
     32          print ('SECTION NOT FOUND: %s' % s ) 
     33 
     34    for t in sorted( ee.keys() ): 
     35          s = ee[t] 
     36          oo.write( '\\input{slist_%s.texlet}\n' % s ) 
     37          self.psect(s) 
     38    oo.close() 
     39 
     40  def _latex(self,x): 
     41    return x.replace( '_', '\\_' ) 
     42 
     43  def psect(self,sect): 
     44    assert sect in self.es, 'Section not found in __sect__: %s' % sect 
     45    assert sect in self.cc, 'Section not found in __main__: %s' % sect 
     46    print (self.es[sect].title) 
     47    print (self.cc[sect].keys()) 
     48    oo = open( 'slist_%s.texlet' % sect, 'w' ) 
     49    oo.write( '\\section{%s [%s]}\n' % (self.es[sect].title,self.es[sect].label) ) 
     50     
     51    oo.write( '%s\n\n' % self._latex(self.dq.c._desc[self.es[sect].label] ) ) 
     52 
     53    f = lambda x: '%s: %s' % ({'label':'00','title':'01','description':'02','uid':'03'}.get(x,'99'),x) 
     54    oo.write( '\\sectionTable{\\hline\n' ) 
     55    for k in sorted( self.cc[sect].keys(), key=f ): 
     56      this = self.cc[sect][k] 
     57      that = [this.label, this.title, this.description, '\\ttt{%s}' % this.type, '\\ttt{%s}' % this.uid ] 
     58      line = ' & '.join( [self._latex(x) for x in that[:4]] ) + ' \\\\ \n\\hline\n' 
     59      oo.write( line ) 
     60    oo.write( '}% End of sectionTable argument\n' ) 
     61    oo.close() 
     62 
     63     
     64     
     65 
    666for k in sorted( dq.coll.keys() ): 
    767  if len( dq.coll[k].items ) > 0: 
    868    i = dq.coll[k].items[0] 
    9     print '%s & %s & %s &  \\' % (k,len( dq.coll[k].items ), i._h.title ) 
     69    print ( '%s & %s & %s &  \\' % (k,len( dq.coll[k].items ), i._h.title ) ) 
    1070 
    1171 
     
    2181  nnn = nnn*y 
    2282 
    23 print 'Virtual requests (var-expt-objective): %s [%s, %4.2f%%]' % (nn, nnn, float(100*nn)/nnn) 
     83print ( 'Virtual requests (var-expt-objective): %s [%s, %4.2f%%]' % (nn, nnn, float(100*nn)/nnn) ) 
    2484 
    2585nn = 0 
     
    3898  nnn = nnn*y 
    3999 
    40 print 'Virtual requests (var-expt): %s [%s, %4.2f%%]' % (nn, nnn, float(100*nn)/nnn) 
     100print ( 'Virtual requests (var-expt): %s [%s, %4.2f%%]' % (nn, nnn, float(100*nn)/nnn) ) 
    41101 
    42102c1 = [x for x in dq.coll['CMORvar'].items  if 'requestVar' not in dq.inx.iref_by_sect[x].a] 
    43103nnn = len( dq.coll['CMORvar'].items ) 
    44 print 'CMORVvars: %s [%s]' % (nnn,len(c1)) 
     104print ( 'CMORVvars: %s [%s]' % (nnn,len(c1)) ) 
    45105for k in ks[:5]: 
    46   print 'Var count (top): %s [%s, %4.2f%%]' % (k,ee[k], float(100*ee[k])/nnn) 
     106  print ( 'Var count (top): %s [%s, %4.2f%%]' % (k,ee[k], float(100*ee[k])/nnn) ) 
    47107for k in ks[-5:]: 
    48   print 'Var count (bottom): %s [%s, %4.2f%%]' % (k,ee[k], float(100*ee[k])/nnn) 
     108  print ( 'Var count (bottom): %s [%s, %4.2f%%]' % (k,ee[k], float(100*ee[k])/nnn) ) 
    49109   
Note: See TracChangeset for help on using the changeset viewer.