Package PyFoam :: Package Applications :: Module CommonReportRunnerData
[hide private]
[frames] | no frames]

Source Code for Module PyFoam.Applications.CommonReportRunnerData

 1  """ 
 2  Class that implements the common functionality for reporting the data that was submitted to the runner 
 3  """ 
 4   
 5  from PyFoam.Basics.RestructuredTextHelper import ReSTTable,RestructuredTextHelper 
 6   
 7  from PyFoam.ThirdParty.six import print_,iteritems 
 8   
9 -class CommonReportRunnerData(object):
10 """ The class that reports the resource usage 11 """ 12
13 - def addOptions(self):
14 self.ensureGeneralOptions() 15 self.generalOpts.add_option("--report-runner-data", 16 action="store_true", 17 default=False, 18 dest="reportRunnerData", 19 help="After the execution the data collected by the runner (except for the analyzed data) is printed to the screen") 20 self.generalOpts.add_option("--report-analyzed-data", 21 action="store_true", 22 default=False, 23 dest="reportAnalyzedData", 24 help="After the execution the analyzed data collected by the runner is printed to the screen") 25 self.generalOpts.add_option("--dump-runner-data", 26 action="store_true", 27 default=False, 28 dest="dumpRunnerData", 29 help="After the execution the data collected by the runner is dumped")
30
31 - def reportRunnerData(self,run):
32 if self.opts.reportRunnerData: 33 try: 34 data=run.data["analyzed"] 35 except KeyError: 36 self.error("No analyzed data") 37 38 print_("\n Analyzed data:") 39 print_() 40 41 helper=RestructuredTextHelper(RestructuredTextHelper.LevelSubSubSection) 42 43 for n,d in iteritems(data): 44 table=helper.table() 45 heads=["Descrition","value"] 46 table[0]=heads 47 table.addLine(head=True) 48 lNr=1 49 50 for k,v in iteritems(d): 51 table[(lNr,0)]=k 52 table[(lNr,1)]=v 53 lNr+=1 54 55 print_(helper.heading(n),table) 56 57 if self.opts.reportRunnerData: 58 table=ReSTTable() 59 heads=["Descrition","value"] 60 table[0]=heads 61 table.addLine(head=True) 62 lNr=1 63 done=["analyzed"] 64 65 def addLine(key,description): 66 if key in run.data: 67 table[(lNr,0)]=description 68 table[(lNr,1)]=run.data[key] 69 done.append(key) 70 return lNr+1 71 return lNr
72 73 lNr=addLine("time","Last simulation time") 74 lNr=addLine("stepNr","Number of timesteps") 75 lNr=addLine("lines","Lines written to stdout") 76 lNr=addLine("warnings","Number of warnings") 77 78 table.addLine() 79 80 for k,v in iteritems(run.data): 81 if k not in done: 82 table[(lNr,0)]=k 83 table[(lNr,1)]=v 84 lNr+=1 85 86 print_("\n Runner data:") 87 print_() 88 print_(table) 89 90 if self.opts.dumpRunnerData: 91 print_("\n Runner data:",run.data)
92 93 # Should work with Python3 and Python2 94