Providing array interface from SWIG-wrapped C struct
Lisandro Dalcin
dalcinl at gmail.com
Thu Oct 12 14:40:46 EDT 2006
On 10/12/06, Michele Vallisneri <vallis at vallis.org> wrote:
> Does anybody here have experience about offering the array interface
> from a SWIG-wrapped C struct?
I have.
> I have tried the following, borrowing code from numpy's arrayobject.c:
>
> %extend real_vec_t {
> PyObject *__array_struct__() {
> /* From numpy/arrayobject.c/array_struct_get */
You are extending real_vec_t with a new METHOD, but what numpy
requests is an ATTRIBUTE. So, numpy simply queries your vec like:
arrstr = vec.__array_struct__
and not with a method call like this
arrstr = vec.__array_struct__()
So here is what I would do (can fail with some SWIG optimizations)
%extend Vec {
PyObject* __array_struct__ () { /* ... */ }
%pythoncode {
__array_struct__ = property(__array_struct__,
doc='Array protocol')
}
}
Hope you got the idea.
--
Lisandro Dalcín
---------------
Centro Internacional de Métodos Computacionales en Ingeniería (CIMEC)
Instituto de Desarrollo Tecnológico para la Industria Química (INTEC)
Consejo Nacional de Investigaciones Científicas y Técnicas (CONICET)
PTLC - Güemes 3450, (3000) Santa Fe, Argentina
Tel/Fax: +54-(0)342-451.1594
-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
More information about the NumPy-Discussion
mailing list