X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=TestAdaoHelper.cxx;fp=TestAdaoHelper.cxx;h=553be51339c0ca6f00a3fb05f2e674b1844243e3;hb=51a7f368eee9cf6c3d0100bc37b5fbb2ef142930;hp=09d89297e5acbf1c0223b1994291c3a7cafb512c;hpb=9598215e7409e9ebfa24615fe85890ba5b9ba67c;p=tools%2Fadao_interface.git diff --git a/TestAdaoHelper.cxx b/TestAdaoHelper.cxx index 09d8929..553be51 100644 --- a/TestAdaoHelper.cxx +++ b/TestAdaoHelper.cxx @@ -34,59 +34,7 @@ std::vector funcCrue(const std::vector& vec) return ret; } -PyObject *multiFuncCrue(PyObject *inp) -{ - PyGILState_STATE gstate(PyGILState_Ensure()); - PyObjectRAII iterator(PyObjectRAII::FromNew(PyObject_GetIter(inp))); - if(iterator.isNull()) - throw AdaoExchangeLayerException("Input object is not iterable !"); - PyObject *item(nullptr); - PyObjectRAII numpyModule(PyObjectRAII::FromNew(PyImport_ImportModule("numpy"))); - if(numpyModule.isNull()) - throw AdaoExchangeLayerException("Failed to load numpy"); - PyObjectRAII ravelFunc(PyObjectRAII::FromNew(PyObject_GetAttrString(numpyModule,"ravel"))); - std::vector< PyObjectRAII > pyrets; - while( item = PyIter_Next(iterator) ) - { - PyObjectRAII item2(PyObjectRAII::FromNew(item)); - { - PyObjectRAII args(PyObjectRAII::FromNew(PyTuple_New(1))); - PyTuple_SetItem(args,0,item2.retn()); - PyObjectRAII npyArray(PyObjectRAII::FromNew(PyObject_CallObject(ravelFunc,args))); - // Waiting management of npy arrays into py2cpp - PyObjectRAII lolistFunc(PyObjectRAII::FromNew(PyObject_GetAttrString(npyArray,"tolist"))); - PyObjectRAII listPy; - { - PyObjectRAII args2(PyObjectRAII::FromNew(PyTuple_New(0))); - listPy=PyObjectRAII::FromNew(PyObject_CallObject(lolistFunc,args2)); - } - std::vector vect; - { - py2cpp::PyPtr listPy2(listPy.retn()); - py2cpp::fromPyPtr(listPy2,vect); - } - // - PyGILState_Release(gstate); - std::vector res(funcCrue(vect)); - gstate=PyGILState_Ensure(); - // - py2cpp::PyPtr resPy(py2cpp::toPyPtr(res)); - PyObjectRAII resPy2(PyObjectRAII::FromBorrowed(resPy.get())); - pyrets.push_back(resPy2); - } - } - std::size_t len(pyrets.size()); - PyObjectRAII ret(PyObjectRAII::FromNew(PyList_New(len))); - for(std::size_t i=0;i