PLearn 0.1
Static Public Member Functions
PLearn::ConvertToPyObject< RealRange > Struct Template Reference

#include <PythonObjectWrapper.h>

List of all members.

Static Public Member Functions

static PyObject * newPyObject (const RealRange &)

Detailed Description

template<>
struct PLearn::ConvertToPyObject< RealRange >

Definition at line 717 of file PythonObjectWrapper.h.


Member Function Documentation

PyObject * PLearn::ConvertToPyObject< RealRange >::newPyObject ( const RealRange rr) [static]

Definition at line 916 of file PythonObjectWrapper.cc.

References PLearn::PythonObjectWrapper::as(), PLearn::RealRange::high, PLearn::RealRange::leftbracket, PLearn::RealRange::low, PLERROR, PLearn::RealRange::rightbracket, and PLearn::tostring().

{
    string pycode= "\nfrom plearn.pybridge.wrapped_plearn_object import RealRange\n";
    pycode+= string("\nresult= RealRange(leftbracket='") + rr.leftbracket + "', "
        + "low= " + tostring(rr.low) + ", high= " + tostring(rr.high) + ", "
        + "rightbracket= '" + rr.rightbracket + "')\n";
    PyObject* env= PyDict_New();
    if(0 != PyDict_SetItemString(env, "__builtins__", PyEval_GetBuiltins()))
        PLERROR("in ConvertToPyObject<RealRange>::newPyObject : "
                "cannot insert builtins in env.");
    PyObject* res= PyRun_String(pycode.c_str(), Py_file_input, env, env);
    if(!res)
    {
        Py_DECREF(env);
        if(PyErr_Occurred()) PyErr_Print();
        PLERROR("in ConvertToPyObject<RealRange>::newPyObject : "
                "cannot convert to a RealRange.");
    }
    Py_DECREF(res);
    PyObject* py_rr= PythonObjectWrapper(env).as<std::map<string, PyObject*> >()["result"];
    Py_INCREF(py_rr);
    Py_DECREF(env);
    return py_rr;
}

Here is the call graph for this function:


The documentation for this struct was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines