1
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
31 """
32 This class provides an interface for preprocessing files in iceprod
33 """
34
36 self.parameters = OrderedDict()
37 self.description = OrderedDict()
38 self.status = 0
39 self.parser = None
40
41
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
48 """
49 Set the ExpParser object
50 """
51 self.parser = parser
52
54 """
55 Add parameter value for plugin
56 """
57 self.parameters[param.lower()] = value
58 self.description[param.lower()] = description
59
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
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
83
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
92 logger.info("finish %s: %s" % (self.__class__.__name__,self.GetParameter("execute")))
93 return 0
94
105
116