Package iceprod :: Package modules :: Module ipmodule
[hide private]
[frames] | no frames]

Source Code for Module iceprod.modules.ipmodule

  1  #!/bin/env python 
  2  # 
  3  """ 
  4   Interface for configuring pre/post icetray scripts 
  5   
  6   copyright  (c) 2005 the icecube collaboration 
  7   
  8   @version: $Revision: $ 
  9   @date: $Date: $ 
 10   @author: Juan Carlos Diaz Velez <juancarlos@icecube.wisc.edu> 
 11  """ 
 12   
 13  import os 
 14  import re 
 15  import sys 
 16  import math 
 17  import dircache 
 18  import time 
 19  import string 
 20  import shutil 
 21  import cPickle 
 22  import logging 
 23  import iceprod 
 24  from iceprod.core.odict import OrderedDict 
 25  from iceprod.core.lex import ExpParser 
 26   
 27  logger = logging.getLogger('IPBaseClass') 
 28   
 29   
30 -class IPBaseClass:
31 """ 32 This class provides an interface for preprocessing files in iceprod 33 """ 34
35 - def __init__(self):
36 self.parameters = OrderedDict() 37 self.description = OrderedDict() 38 self.status = 0 39 self.parser = None 40 41 # Aggregate CPU times 42 self.realtime = 0.0 43 self.usertime = 0.0 44 self.systime = 0.0 45 self.AddParameter("execute","boolean condition to execute", True)
46
47 - def SetParser(self, parser):
48 """ 49 Set the ExpParser object 50 """ 51 self.parser = parser
52
53 - def AddParameter(self, param,description, value):
54 """ 55 Add parameter value for plugin 56 """ 57 self.parameters[param.lower()] = value 58 self.description[param.lower()] = description
59
60 - def GetParameter(self, param):
61 """ 62 Get parameter value for plugin 63 """ 64 if not self.parameters.has_key(param.lower()): 65 raise Exception, "Attemting to get parameter %s not added by %s" % (param,self) 66 return self.parameters[param.lower()]
67
68 - def SetParameter(self, param, value):
69 """ 70 Set parameter value for plugin 71 """ 72 if not self.parameters.has_key(param.lower()): 73 print self.ShowParameters() 74 raise Exception, "param %s was configured but not added by %s" % (param,self) 75 self.parameters[param.lower()] = value 76 logger.info("%s:%s" %(param,value)) 77 return self
78 79
80 - def Execute(self,stats):
81 logger.info("execute %s: %s" % (self.__class__.__name__,self.GetParameter("execute"))) 82 return self.GetParameter("execute")
83
84 - def ShowParameters(self):
85 return zip( 86 self.parameters.keys(), 87 map(self.parameters.get,self.parameters.keys()), 88 map(self.description.get,self.parameters.keys()) 89 )
90
91 - def Finish(self,stats={}):
92 logger.info("finish %s: %s" % (self.__class__.__name__,self.GetParameter("execute"))) 93 return 0
94
95 -class Hello(IPBaseClass):
96
97 - def __init__(self):
98 IPBaseClass.__init__(self) 99 self.AddParameter("greeting","String to write to screen","Hello World")
100
101 - def Execute(self,stats):
102 if not IPBaseClass.Execute(self,stats): return 0 103 print self.GetParameter("greeting") 104 return 0
105
106 -class GoodBye(IPBaseClass):
107
108 - def __init__(self):
109 IPBaseClass.__init__(self) 110 self.AddParameter("greeting","String to write to screen","Good bye World")
111
112 - def Execute(self,stats):
113 if not IPBaseClass.Execute(self,stats): return 0 114 print self.GetParameter("greeting") 115 return 0
116