PLearn 0.1
|
#include <PythonObjectWrapper.h>
Static Public Member Functions | |
static Object * | convert (PyObject *, bool print_traceback) |
Definition at line 334 of file PythonObjectWrapper.h.
Object * PLearn::ConvertFromPyObject< Object * >::convert | ( | PyObject * | pyobj, |
bool | print_traceback | ||
) | [static] |
Definition at line 196 of file PythonObjectWrapper.cc.
References PLASSERT, PLERROR, and PLearn::PLPythonConversionError().
{ // DBG_MODULE_LOG << "ConvertFromPyObject<Object*>::convert(" // << (void*)pyobj << ' ' << PythonObjectWrapper(pyobj) // << ')' << endl; PLASSERT(pyobj); if(pyobj == Py_None) return 0; if(!PyObject_HasAttrString(pyobj, const_cast<char*>("_cptr"))) { PLERROR("in ConvertFromPyObject<Object*>::convert : " "python object has no attribute '_cptr'"); return 0; } PyObject* cptr= PyObject_GetAttrString(pyobj, const_cast<char*>("_cptr")); if (! PyCObject_Check(cptr)) PLPythonConversionError("ConvertFromPyObject<Object*>", pyobj, print_traceback); Object* obj= static_cast<Object*>(PyCObject_AsVoidPtr(cptr)); Py_DECREF(cptr); // DBG_MODULE_LOG << "EXITING ConvertFromPyObject<Object*>::convert(" // << (void*)pyobj << ' ' << PythonObjectWrapper(pyobj) // << ')' << " => " << (void*)obj << ' ' << obj->asString() << endl; return obj; }