Ejemplo n.º 1
0
 def __init__(self,**params):
     Parameterized.__init__(self,**params)
     
     for (name,value) in self.get_param_values():
         if value == None:
            logger.error("The parameter %s was not initialized" % name) 
            raise ValueError("The parameter %s was not initialized" % name) 
Ejemplo n.º 2
0
    def __init__(self, **params):
        
        self.cached_get_param_values = None
        Parameterized.__init__(self, **params)
        self.module_path = inspect.getmodule(self).__name__
        self.name = self.__class__.__name__
        

        for name in self.params():
            o = self.params()[name]
            if not (isinstance(o,SNumber) or isinstance(o,SInteger) or isinstance(o,SString) or isinstance(o,SParameterSet)):
               raise ValueError("The parameter %s is not of type SNumber or SInteger or SString or SParameterSet but of type %s." % (name,type(o)))
 
        for (name, value) in self.get_param_values():
            if value == None and self.params()[name].allow_None==False:                
                logger.error("The parameter %s was not initialized" % name)
                raise ValueError("The parameter %s was not initialized" % name)

        def _expand_parameter_set(ps):
            """
            Helper function that expands parameter set.
            """
            ret = []
            for k in ps.keys():
                if isinstance(ps[k],MozaikExtendedParameterSet):
                   ret += [(k + '_' + p,v)  for p,v in  _expand_parameter_set(ps[k])]
                else:
                   ret.append((k,ps[k]))       
            return ret

        # find out which params are SParameterSet
        self.paramset_params_names =  [ps for ps in self.params().keys() if isinstance(self.params()[ps],SParameterSet)]

        # store expanded SParameterSet parameters
        self.expanded_paramset_params = []
        for ps in self.paramset_params_names:
                if getattr(self,ps) != None:
                    self.expanded_paramset_params+=_expand_parameter_set(getattr(self,ps))
        self.expanded_paramset_params.sort(key=lambda tup: tup[0])



        if self.expanded_paramset_params != []:
            self.expanded_params_names = zip(*self.expanded_paramset_params)[0]
        else:
            self.expanded_params_names= []

        assert ((set([t[0] for t in self.expanded_paramset_params]) & set(self.params().keys())) == set([])) , ("Conflict between MozaikParametrized and expanded ParameterSet parameters. Intersection: %s " % str(set([t[0] for t in self.expanded_paramset_params]) & set(self.params().keys())))

        # and lets also have a dictionary version of the parameters
        self.expanded_paramset_params_dict = self.params().copy()

        # remove SParemeterSet parameters 
        for key in self.expanded_paramset_params_dict.keys():
            if isinstance(self.expanded_paramset_params_dict[key],SParameterSet):
               del self.expanded_paramset_params_dict[key]
        
        self.expanded_paramset_params_dict.update(dict(self.expanded_paramset_params))
Ejemplo n.º 3
0
    def __init__(self, **params):
        
        self.cached_get_param_values = None
        Parameterized.__init__(self, **params)
        self.module_path = inspect.getmodule(self).__name__
        self.name = self.__class__.__name__
        

        for name in self.params():
            o = self.params()[name]
            if not (isinstance(o,SNumber) or isinstance(o,SInteger) or isinstance(o,SString) or isinstance(o,SParameterSet)):
               raise ValueError("The parameter %s is not of type SNumber or SInteger or SString or SParameterSet but of type %s." % (name,type(o)))
 
        for (name, value) in self.get_param_values():
            if value == None and self.params()[name].allow_None==False:                
                logger.error("The parameter %s was not initialized" % name)
                raise ValueError("The parameter %s was not initialized" % name)

        def _expand_parameter_set(ps):
            """
            Helper function that expands parameter set.
            """
            ret = []
            for k in ps.keys():
                if isinstance(ps[k],MozaikExtendedParameterSet):
                   ret += [(k + '_' + p,v)  for p,v in  _expand_parameter_set(ps[k])]
                else:
                   ret.append((k,ps[k]))       
            return ret

        # find out which params are SParameterSet
        self.paramset_params_names =  [ps for ps in self.params().keys() if isinstance(self.params()[ps],SParameterSet)]

        # store expanded SParameterSet parameters
        self.expanded_paramset_params = []
        for ps in self.paramset_params_names:
                if getattr(self,ps) != None:
                    self.expanded_paramset_params+=_expand_parameter_set(getattr(self,ps))
        self.expanded_paramset_params.sort(key=lambda tup: tup[0])



        if self.expanded_paramset_params != []:
            self.expanded_params_names = zip(*self.expanded_paramset_params)[0]
        else:
            self.expanded_params_names= []

        assert ((set([t[0] for t in self.expanded_paramset_params]) & set(self.params().keys())) == set([])) , ("Conflict between MozaikParametrized and expanded ParameterSet parameters. Intersection: %s " % str(set([t[0] for t in self.expanded_paramset_params]) & set(self.params().keys())))

        # and lets also have a dictionary version of the parameters
        self.expanded_paramset_params_dict = self.params().copy()

        # remove SParemeterSet parameters 
        for key in self.expanded_paramset_params_dict.keys():
            if isinstance(self.expanded_paramset_params_dict[key],SParameterSet):
               del self.expanded_paramset_params_dict[key]
        
        self.expanded_paramset_params_dict.update(dict(self.expanded_paramset_params))
Ejemplo n.º 4
0
    def  __init__(self, datastore, **params):
        Parameterized.__init__(self, **params)
        self.datastore = datastore

        ### lets first find the values of the two parameters in the datastore
        self.x_axis_values = list(parameter_value_list(datastore.get_analysis_result(),self.x_axis_parameter))
        self.y_axis_values = list(parameter_value_list(param_filter_query(datastore,**{self.x_axis_parameter:self.x_axis_values[0]}).get_analysis_result(),self.y_axis_parameter))
        
        ### and verify it forms a grid
        for v in self.x_axis_values:
            assert set(self.y_axis_values) == parameter_value_list(param_filter_query(datastore,**{self.x_axis_parameter:v}).get_analysis_result(),self.y_axis_parameter)
Ejemplo n.º 5
0
    def  __init__(self, datastore, **params):
        Parameterized.__init__(self, **params)
        self.datastore = datastore

        ### lets first find the values of the two parameters in the datastore
        self.x_axis_values = list(parameter_value_list(datastore.get_analysis_result(),self.x_axis_parameter))
        self.y_axis_values = list(parameter_value_list(param_filter_query(datastore,**{self.x_axis_parameter:self.x_axis_values[0]}).get_analysis_result(),self.y_axis_parameter))
        
        ### and verify it forms a grid
        for v in self.x_axis_values:
            assert set(self.y_axis_values) == parameter_value_list(param_filter_query(datastore,**{self.x_axis_parameter:v}).get_analysis_result(),self.y_axis_parameter)
Ejemplo n.º 6
0
    def __init__(self, **params):
        Parameterized.__init__(self, **params)
        self.module_path = inspect.getmodule(self).__name__
        self.name = self.__class__.__name__
        
        for name in self.params():
            o = self.params()[name]
            if not (isinstance(o,SNumber) or isinstance(o,SInteger) or isinstance(o,SString)):
               raise ValueError("The parameter %s is not of type SNumber or SInteger or SString" % name)
 
        for (name, value) in self.get_param_values():
            if value == None and self.params()[name].allow_None==False:                
                logger.error("The parameter %s was not initialized" % name)
                raise ValueError("The parameter %s was not initialized" % name)
Ejemplo n.º 7
0
    def __init__(self, **params):
        Parameterized.__init__(self, **params)
        self.module_path = inspect.getmodule(self).__name__
        self.name = self.__class__.__name__

        for name in self.params():
            o = self.params()[name]
            if not (isinstance(o, SNumber) or isinstance(o, SInteger)
                    or isinstance(o, SString)):
                raise ValueError(
                    "The parameter %s is not of type SNumber or SInteger or SString"
                    % name)

        for (name, value) in self.get_param_values():
            if value == None and self.params()[name].allow_None == False:
                logger.error("The parameter %s was not initialized" % name)
                raise ValueError("The parameter %s was not initialized" % name)