예제 #1
0
 def ps(self):
     pset=ParameterSet()
     for (k,v) in self._flatten().iteritems():
         if v.__class__.__name__=="float":
             pset.AddDouble(k,v)
         elif v.__class__.__name__=="int":
             pset.AddInt(k,v)
         elif v.__class__.__name__=="str":
             pset.AddString(k,v)
         elif v.__class__.__name__=="bool":
             pset.AddBool(k,v)
         elif getattr(v, '__iter__', False):
             # Iterable type
             if not my_any([isinstance(v,t) for t in types.vector_types]):
                 try:
                     v=types.iterable_to_icf_type(v)
                 except TypeError,e:
                     print "Variable %s : %s" % (k,e)
                     raise e
             func = None
             for t in types.vector_types:
                 if isinstance(v, t):
                     func = getattr(pset, "Add%s" % t.__name__[4:], None)
                     if func: break
             if func: func(k, v)
             else: raise Exception("Cannot find C++ convertor function for iterable '%s' (type '%s')" % v.__class__.__name__)
         else: print "ERROR"
예제 #2
0
파일: utils.py 프로젝트: robinnandi/stats
 def ps(self):
     pset=ParameterSet()
     for (k,v) in self._flatten().iteritems():
         if v.__class__.__name__=="float":
             pset.AddDouble(k,v)
         elif v.__class__.__name__=="int":
             pset.AddInt(k,v)
         elif v.__class__.__name__=="str":
             pset.AddString(k,v)
         elif v.__class__.__name__=="bool":
             pset.AddBool(k,v)
         elif getattr(v, '__iter__', False):
             # Iterable type
             if not my_any([isinstance(v,t) for t in types.vector_types]):
                 try:
                     v=types.iterable_to_icf_type(v)
                 except TypeError,e:
                     print "Variable %s : %s" % (k,e)
                     raise e
             if isinstance(v,ICF_StringVector):
                 pset.AddStringVector(k,v)
             elif isinstance(v,ICF_DoubleVector):
                 pset.AddDoubleVector(k,v)
             elif isinstance(v,ICF_IntVector):
                 pset.AddIntVector(k,v)
             elif isinstance(v,ICF_BoolVector):
                 pset.AddBoolVector(k,v)