Mercurial > hg > vampy
diff PyTypeInterface.cpp @ 66:5664fe298af2
Update to Python 2.7 and clean up the build (avoid using deprecated NumPy API, fix compiler warnings)
author | Chris Cannam |
---|---|
date | Mon, 17 Nov 2014 09:37:59 +0000 |
parents | 74703a562ce3 |
children | 6c755f3e1173 |
line wrap: on
line diff
--- a/PyTypeInterface.cpp Wed Aug 06 16:02:25 2014 +0100 +++ b/PyTypeInterface.cpp Mon Nov 17 09:37:59 2014 +0000 @@ -1,3 +1,4 @@ +/* -*- c-basic-offset: 8 indent-tabs-mode: t -*- */ /* * Vampy : This plugin is a wrapper around the Vamp plugin API. @@ -14,6 +15,7 @@ #ifdef HAVE_NUMPY #define PY_ARRAY_UNIQUE_SYMBOL VAMPY_ARRAY_API #define NO_IMPORT_ARRAY +#define NPY_NO_DEPRECATED_API NPY_1_7_API_VERSION #include "numpy/arrayobject.h" #endif @@ -40,7 +42,7 @@ static bool isMapInitialised = false; /* Note: NO FUNCTION IN THIS CLASS SHOULD ALTER REFERENCE COUNTS - (EXCEPT FOR TEMPORARY PYTHON OBJECTS)! */ + (EXCEPT FOR TEMPORARY PYTHON OBJECTS)! */ PyTypeInterface::PyTypeInterface() : m_strict(false), @@ -698,10 +700,10 @@ #endif PyArrayObject* pyArray = (PyArrayObject*) pyValue; - PyArray_Descr* descr = pyArray->descr; + PyArray_Descr* descr = PyArray_DESCR(pyArray); /// check raw data and descriptor pointers - if (pyArray->data == 0 || descr == 0) { + if (PyArray_DATA(pyArray) == 0 || descr == 0) { std::string msg = "NumPy array with NULL data or descriptor pointer encountered."; setValueError(msg,m_strict); #ifdef _DEBUG @@ -711,7 +713,7 @@ } /// check dimensions - if (pyArray->nd != 1) { + if (PyArray_NDIM(pyArray) != 1) { std::string msg = "NumPy array must be a one dimensional vector."; setValueError(msg,m_strict); #ifdef _DEBUG @@ -725,19 +727,19 @@ #endif /// check strides (useful if array is not continuous) - size_t strides = *((size_t*) pyArray->strides); + size_t strides = *((size_t*) PyArray_STRIDES(pyArray)); /// convert the array switch (descr->type_num) { case NPY_FLOAT : // dtype='float32' - return PyArray_Convert<float,float>(pyArray->data,pyArray->dimensions[0],strides); + return PyArray_Convert<float,float>(PyArray_DATA(pyArray),PyArray_DIMS(pyArray)[0],strides); case NPY_DOUBLE : // dtype='float64' - return PyArray_Convert<float,double>(pyArray->data,pyArray->dimensions[0],strides); + return PyArray_Convert<float,double>(PyArray_DATA(pyArray),PyArray_DIMS(pyArray)[0],strides); case NPY_INT : // dtype='int' - return PyArray_Convert<float,int>(pyArray->data,pyArray->dimensions[0],strides); + return PyArray_Convert<float,int>(PyArray_DATA(pyArray),PyArray_DIMS(pyArray)[0],strides); case NPY_LONG : // dtype='long' - return PyArray_Convert<float,long>(pyArray->data,pyArray->dimensions[0],strides); + return PyArray_Convert<float,long>(PyArray_DATA(pyArray),PyArray_DIMS(pyArray)[0],strides); default : std::string msg = "Unsupported value type in NumPy array object."; setValueError(msg,m_strict);