[Numpy-discussion] Numpi array and typemap

Michel Dupront michel.dupront at hotmail.fr
Mon Mar 15 04:45:40 EDT 2010


I am trying to do what was suppose to be a very easy 
exercice. It consists in converting a C++ class Container into a 
numpy array as show below using typename
My problem is that if I make the method getContainer run from 
python I will get a numpy array as expected by with wrong values.
I guess I have a memory problem but I do not understand exactly 
wwhat is going on. 
I was hoping that somebody could help me with that and maybe 
tell me how to use the PyArray_SimpleNewFromData macro.


%module Foo
#include "container.h"

template <class T> Container<T> getContainer()
... C Container construction that will have a pointer to (1,2,3,4,5)...
return C;

%typedef unsigned int size_t;
%include "numpy.i"
%init %{

template <class T> class Container
Container(size_t length, T* pfirst_value);
size_t lentgh() { ... return the lentgh ...}
T* ptr() { ... return pointer to the first value ... } 

%template(cN) Container<size_t>;

%typemap(python,out) Container<size_t>
npy_intp dims[] = { 5 };
PyObject* obj = PyArray_SimpleNewFromData (1,dims,PyArray_UINT,$1.ptr());
$result = obj;

template <class T> navlib::array<T> getContainer();
%template(getContainerN ) getContainer<size_t>;

Découvrez comment SURFER DISCRETEMENT sur un site de rencontres !
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/numpy-discussion/attachments/20100315/a237454d/attachment.html>

More information about the NumPy-Discussion mailing list