[Numpy-discussion] [EXTERNAL] swig interface file (numpy.i) warning

Bill Spotz wfspotz at sandia.gov
Tue Oct 9 11:52:15 EDT 2012

Tom, Charles,

If you discuss this further, be sure to CC me.

-Bill Spotz

On Oct 9, 2012, at 8:50 AM, Charles R Harris wrote:

> Hi Tom,
> On Tue, Oct 9, 2012 at 8:30 AM, Tom Krauss <thomas.p.krauss at gmail.com> wrote:
> Hi,
> I've been happy to use numpy.i for generating SWIG interfaces to C++.
> For a while, I've noticed this warning while compiling:
> /Users/tkrauss/projects/dev_env/lib/python2.7/site-packages/numpy-1.8.0.dev_f2f0ac0_20120725-py2.7-macosx-10.8-x86_64.egg/numpy/core/include/numpy/npy_deprecated_api.h:11:2: warning: #warning "Using deprecated NumPy API, disable it by #defining NPY_NO_DEPRECATED_API NPY_1_7_API_VERSION"
> and today tried to get rid of the warning.
> So, in numpy.i, I followed the warning's advice.  I added the # def here:
> %{
> #  define NO_IMPORT_ARRAY
> #endif
> #include "stdio.h"
> #include <numpy/arrayobject.h>
> %}
> SWIG was happy, but when compiling the C++ wrapper, there were many warnings followed by many errors.  The warnings were for redefinition of NPY_MIN_BYTE and similar.  The errors were for all kinds of stuff, excerpt here:
> native_wrap.cpp:3632: error: ‘PyArray_NOTYPE’ was not declared in this scope
> native_wrap.cpp:3633: error: cannot convert ‘PyObject*’ to ‘const PyArrayObject*’ for argument ‘1’ to ‘int PyArray_TYPE(const PyArrayObject*)’
> native_wrap.cpp: At global scope:
> native_wrap.cpp:3877: error: ‘intp’ has not been declared
> native_wrap.cpp: In function ‘int require_fortran(PyArrayObject*)’:
> native_wrap.cpp:3929: error: ‘struct tagPyArrayObject’ has no member named ‘nd’
> native_wrap.cpp:3933: error: ‘struct tagPyArrayObject’ has no member named ‘flags’
> native_wrap.cpp:3933: error: ‘FARRAY’ was not declared in this scope
> native_wrap.cpp:20411: error: ‘struct tagPyArrayObject’ has no member named ‘data’
> It looks like there is a new C API for numpy, and the version of numpy.i that I have doesn't use it.
> Is there a new version of numpy.i available (or in development) that works with the new API?  Short term it will just get rid of a warning but I am interested in a good long term solution in case I need to upgrade numpy.
> In the long term we would like to hide the ndarray internals, essentially making them private. There are still some incomplete areas, f2py and, apparently, numpy.i. Your feedback here is quite helpful and if you have some time we can try to get this straightened out. Could you attach the code you are trying to interface? If you have a github account you could also set up a branch where we could work on this.
> Chuck 
> _______________________________________________
> NumPy-Discussion mailing list
> NumPy-Discussion at scipy.org
> http://mail.scipy.org/mailman/listinfo/numpy-discussion

** Bill Spotz                                              **
** Sandia National Laboratories  Voice: (505)845-0170      **
** P.O. Box 5800                 Fax:   (505)284-0154      **
** Albuquerque, NM 87185-0370    Email: wfspotz at sandia.gov **

More information about the NumPy-Discussion mailing list