Andrea, It is my understanding that swig typemaps only apply to function arguments. Since what you are talking about is a global variable, I don't believe typemaps will help you. I would try
%{ #include "header-that-contains-vec.h" npy_intp vec_dims[ ] = { (npy_intp) length_of_vec }; %} %rename(vec) numpy_vec; %ignore vec; %include "header-that-contains-vec.h" %inline %{ PyObject * numpy_vec = PyArray_SimpleNewFromData(1, vec_dims, NPY_DOUBLE, (void*)vec); %} I guess it would be nice if you could force a "Py_DECREF(numpy_vec);" before the module is destroyed, but I'll leave that as an exercise... On Feb 16, 2007, at 10:59 AM, Andrea Tomadin wrote: > Il giorno 15/feb/07, alle ore 22:26, Bill Spotz ha scritto: > >> It seems to me you would need to %ignore vec, so that it is not >> wrapped as a raw pointer to a double, and then in your interface >> file create a PyArrayObject whose data buffer points to vec (the >> most efficient way to do this is with %inline). Then use %rename >> to rename whatever you called your PyArrayObject to "vec" (or not, >> if you do not care about the name). Finally, >> >> foo.cvar.vec = numpy.zeros(10) >> >> is going to decrement (and probably delete) your original vec and >> replace it with the new array of zeros (I think, > > Thank you Bill for your help, even if writing this code is not > straightforward for me. Anyway, while I was reading the docs, I > became aware of the varin, varout typemap options. I wonder if I can > define a > typemap(varin) double * > declaration, and insert in it the same code that in "numpy.i" > translates the PyArrayObject into a C array and vice versa. > But I cannot find an example of typemp(varin) for Python, so I don't > know what to use for the output, instead of $1. Where are the typemaps > (varin) for Python? > It seems strange that nobody wrote a public code for such a simple > task, as I read that Swig supports Python since the 90s! I suspect I > have just not looked in the right places?! > > Thank you again for help! > Andrea ** Bill Spotz ** ** Sandia National Laboratories Voice: (505)845-0170 ** ** P.O. Box 5800 Fax: (505)284-5451 ** ** Albuquerque, NM 87185-0370 Email: [EMAIL PROTECTED] ** _______________________________________________ Numpy-discussion mailing list Numpy-discussion@scipy.org http://projects.scipy.org/mailman/listinfo/numpy-discussion