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 <[email protected]> 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: > > %{ > #ifndef SWIG_FILE_WITH_INIT > # define NO_IMPORT_ARRAY > #endif > #include "stdio.h" > #define NPY_NO_DEPRECATED_API NPY_1_7_API_VERSION > #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 > [email protected] > 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: [email protected] ** _______________________________________________ NumPy-Discussion mailing list [email protected] http://mail.scipy.org/mailman/listinfo/numpy-discussion
