diff --git a/common/source/java/ch/systemsx/cisd/common/evaluator/Evaluator.java b/common/source/java/ch/systemsx/cisd/common/evaluator/Evaluator.java index 92e9f9e67db29c42a8989c9a4f0eb3457beb76e7..dbf7ab3e13e2433d7ad72f53ae6eff4a56c3d459 100644 --- a/common/source/java/ch/systemsx/cisd/common/evaluator/Evaluator.java +++ b/common/source/java/ch/systemsx/cisd/common/evaluator/Evaluator.java @@ -23,6 +23,7 @@ import org.python.core.PyCode; import org.python.core.PyException; import org.python.core.PyFloat; import org.python.core.PyInteger; +import org.python.core.PyJavaInstance; import org.python.core.PyLong; import org.python.core.PyNone; import org.python.core.PyObject; @@ -195,6 +196,15 @@ public final class Evaluator } else if (obj instanceof PyNone) { return null; + } else if (obj instanceof PyJavaInstance) + { + Object proxy = ((PyJavaInstance) obj).__tojava__(Object.class); + if (proxy instanceof Long == false && proxy instanceof Double == false + && proxy instanceof String == false) + { + return proxy.toString(); + } + return proxy; } else { return obj.toString();