From e0799e2bb3c198a0a550f39aaed032d760397eb7 Mon Sep 17 00:00:00 2001 From: "Zheng, Lei" Date: Wed, 17 Jul 2019 13:09:21 +0800 Subject: [PATCH] Expression: fix python object evaluation --- src/App/Expression.cpp | 7 +++++++ src/App/Expression.h | 1 + 2 files changed, 8 insertions(+) diff --git a/src/App/Expression.cpp b/src/App/Expression.cpp index b9cadab9fb..d1fe5100d1 100644 --- a/src/App/Expression.cpp +++ b/src/App/Expression.cpp @@ -2350,6 +2350,13 @@ Expression* PyObjectExpression::_copy() const return new PyObjectExpression(owner,pyObj,false); } +boost::any PyObjectExpression::getValueAsAny() const { + if(!pyObj || pyObj == Py_None) + return boost::any(); + Base::PyGILStateLocker lock; + return App::any(pyObjectWrap(pyObj)); +} + // // StringExpression class // diff --git a/src/App/Expression.h b/src/App/Expression.h index f490be5b99..f253292e5d 100644 --- a/src/App/Expression.h +++ b/src/App/Expression.h @@ -529,6 +529,7 @@ public: void setPyObject(PyObject *pyobj, bool owned=false); virtual std::string toString(bool) const; + virtual boost::any getValueAsAny() const; virtual Expression * eval() const { return copy(); } virtual Expression * simplify() const { return copy(); }