newbie: PyArray_Check difficulties

I'm having a problem with PyArray_Check. If I just call PyArray_Check(args) I don't have a problem, but if I try to assign the result to anything, etc., it crashes (due to acces violation). So, for example the code at the end of this note doesn't work, yet I know an array is being passed and I can, for example, calculate its trace correctly if I type cast it as a PyArrayObject*. Also, a more general question: is this the recommended way to input numpy arrays when using swig, or do most people find it easier to use more elaborate typemaps, or something else? Finally, I apologize if this is the wrong forum to post this question. Please let me know. Thanks, Tom Method from C++ class: PyObject * Test01::trace(PyObject * args) { if (!(PyArray_Check(args))) { // <- crashes here PyErr_SetString(PyExc_ValueError, "must use NumPy array"); return NULL; } return NULL; } Swig file: (where typemaps are the ones included with most recent swig) /* TMatrix.i */ %module Ptest %include "typemaps.i" %{ #include "Test01.h" %} class Test01 { public: PyObject * trace(PyObject *INPUT); Test01(); virtual ~Test01(); }; Python code: import Ptest t = Ptest.Test01() import Numeric a = Numeric.arange(1.1, 2.7, .1) b = Numeric.reshape(a, (4,4)) x = t.trace(b)
participants (1)
-
Tom Adelman