00001 #!/usr/local/bin/python 00002 # 00003 # Copyright 2003 00004 # by 00005 # The Board of Trustees of the 00006 # Leland Stanford Junior University. 00007 # All rights reserved. 00008 # 00009 00010 __facility__ = "Online" 00011 __abstract__ = "Parameter verifier class" 00012 __author__ = "S. Tuvi <STuvi@SLAC.Stanford.edu>" 00013 __date__ = ("$Date: 2005/01/10 19:51:55 $").split(' ')[1] 00014 __version__ = "$Revision: 2.3 $" 00015 __release__ = "$Name: R04-12-00 $" 00016 __credits__ = "SLAC" 00017 00018 import LATTE.copyright_SLAC 00019 00020 from rcParamVerifyGUIImpl import rcParamVerifyGUIImpl 00021 00022 class rcParamVerifier(object): 00023 def __init__(self, common, parent = None, name = None, fl = 0): 00024 self.__verifyGUI = rcParamVerifyGUIImpl(common, parent, name, fl) 00025 self.__common = common 00026 00027 def initialize(self, testName): 00028 self.__parNames = [] 00029 self.__parValues = [] 00030 self.__testName = testName 00031 00032 def add(self, parName, parValue): 00033 """\brief Add parameter and its value to the verify list 00034 00035 \param parName Parameter name or description 00036 \param parValue Parameter value that the operator inputted 00037 """ 00038 if parName not in self.__parNames: 00039 self.__parNames.append(parName) 00040 self.__parValues.append(parValue) 00041 else: 00042 raise KeyError, "Parameter with name: %s already added." % parName 00043 00044 def getParameters(self, parName=None): 00045 """\brief Retrive parameters to verify 00046 00047 \param parName Parameter to retrieve from the verify list (optional) 00048 00049 \return A list containing the parameter name and value tuple if \a parName is specified or 00050 A list of parameter name and value tuples if \a parName is None. 00051 """ 00052 if parName is not None: 00053 if parName in self.__parNames: 00054 return [(parName, self.__parValues[self.__parNames.index(parName)])] 00055 else: 00056 return map(None, self.__parNames, self.__parValues) 00057 00058 def verify(self): 00059 if len(self.getParameters()) > 0: 00060 self.__verifyGUI.initialize(self.__testName) 00061 for (parName, parValue) in self.getParameters(): 00062 self.__verifyGUI.addParameter(parName, parValue) 00063 self.__verifyGUI.show() 00064 return self.__verifyGUI.exec_loop() 00065 else: 00066 return 1