Added pickling support for ValueParams
This commit is contained in:
parent
380d4eca0b
commit
95d3c19211
2 changed files with 23 additions and 7 deletions
|
|
@ -62,15 +62,15 @@ def SeperatedVolumeMonitor(eoMonitor):
|
||||||
def __call__(self):
|
def __call__(self):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
class eoStat(eoStatBase, eoValueParamPy):
|
class eoStat(eoStatBase, eoValueParam):
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
eoStatBase.__init__(self)
|
eoStatBase.__init__(self)
|
||||||
eoValueParamPy.__init__(self)
|
eoValueParam.__init__(self)
|
||||||
|
|
||||||
class eoSortedStat(eoSortedStatBase, eoValueParamPy):
|
class eoSortedStat(eoSortedStatBase, eoValueParam):
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
eoSortedStatBase.__init__(self)
|
eoSortedStatBase.__init__(self)
|
||||||
eoValueParamPy.__init__(self)
|
eoValueParam.__init__(self)
|
||||||
|
|
||||||
class eoAverageStat(eoStat):
|
class eoAverageStat(eoStat):
|
||||||
def __call__(self, pop):
|
def __call__(self, pop):
|
||||||
|
|
|
||||||
|
|
@ -52,6 +52,21 @@ public:
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
template <typename T>
|
||||||
|
struct ValueParam_pickle_suite : boost::python::pickle_suite
|
||||||
|
{
|
||||||
|
static
|
||||||
|
boost::python::tuple getstate(const eoValueParam<T>& _param)
|
||||||
|
{
|
||||||
|
return make_tuple(boost::python::str(_param.getValue()));
|
||||||
|
}
|
||||||
|
static
|
||||||
|
void setstate(eoValueParam<T>& _param, boost::python::tuple pickled)
|
||||||
|
{
|
||||||
|
std::string s = extract<std::string>(pickled[0]);
|
||||||
|
_param.setValue(s);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
template <class T, class U>
|
template <class T, class U>
|
||||||
U getv(const eoValueParam<T>& v) { return v.value(); }
|
U getv(const eoValueParam<T>& v) { return v.value(); }
|
||||||
|
|
@ -127,7 +142,8 @@ void define_valueParam(std::string prefix)
|
||||||
.def("setValueAsString", &eoValueParam<T>::setValue)
|
.def("setValueAsString", &eoValueParam<T>::setValue)
|
||||||
.def("getValue", getv<T, U>)
|
.def("getValue", getv<T, U>)
|
||||||
.def("setValue", setv<T, U>)
|
.def("setValue", setv<T, U>)
|
||||||
//.add_property("value", getv<T, U>, setv<T, U>)
|
.add_property("value", getv<T, U>, setv<T, U>)
|
||||||
|
.def_pickle(ValueParam_pickle_suite<T>())
|
||||||
;
|
;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -149,11 +165,11 @@ void valueParam()
|
||||||
define_valueParam<std::vector<double>, numeric::array >("Vec");
|
define_valueParam<std::vector<double>, numeric::array >("Vec");
|
||||||
define_valueParam< std::pair<double, double>, tuple >("Pair");
|
define_valueParam< std::pair<double, double>, tuple >("Pair");
|
||||||
|
|
||||||
class_<ValueParam, bases<eoParam> >("eoValueParamPy", init<>())
|
class_<ValueParam, bases<eoParam> >("eoValueParam", init<>())
|
||||||
//.def(init<object, std::string, std::string, char, bool>())
|
//.def(init<object, std::string, std::string, char, bool>())
|
||||||
//.def(init<object, std::string, std::string, char>())
|
//.def(init<object, std::string, std::string, char>())
|
||||||
//.def(init<object, std::string, std::string>())
|
//.def(init<object, std::string, std::string>())
|
||||||
//.def(init<object, std::string>())
|
.def(init<object, std::string>())
|
||||||
.def("getValueAsString", &ValueParam::getValue)
|
.def("getValueAsString", &ValueParam::getValue)
|
||||||
.def("__str__", &ValueParam::getValue)
|
.def("__str__", &ValueParam::getValue)
|
||||||
.def("setValueAsString", &ValueParam::setValue)
|
.def("setValueAsString", &ValueParam::setValue)
|
||||||
|
|
|
||||||
Reference in a new issue