[Numpy-discussion] PyArray_Check problem.

Chris Barker cbarker at jps.net
Thu Oct 19 17:13:26 EDT 2000


Konrad Hinsen wrote:
> > site = PyList_GetItem(spam_list, index);
> >
> > if (! PyArray_Check(spam)) result = 0;
>                       ^^^^
> 
> Not "site"?

oops! I thought I had Pythonized everything by putting spam everywhere.

> If spam is NULL, then the check will crash. If it is anything but a pointer
> to a Python object, there's a good chance that it might crash.
> PyArray_Check just tells you if a given Python object is of type "array".

Fair enough. In this case, I was getting spam from a Python list. Is it
possible for it to be anything but a pointer to a Python object?

> A look at the value of "spam" with a debugger should tell you what's
> going on.

I have not yet figured out how to use a de-bugger with a python
extension. Does anyone know of any nifty tutorial for how to do this
(with gdb, preferably)? note that I'm a newby to C too, so I need a
really basic run through.

> > spam =  (PyArrayObject *) PyList_GetItem(spam_list, index);
> >
> > Should I be doing this, and should PyArray_Check(spam) work either way?
> 
> It works either way, but I am not sure that you are supposed to rely
> on that. I prefer to use a cast to array objects only *after*
> verifying that I have an array object, if only for clarity.

That sounds like sound advice. I do feel like I'm doing something wrong
if I get a warning form the compiler however.

Thanks for your help.

-Chris

-- 
Christopher Barker,
Ph.D.                                                           
cbarker at jps.net                      ---           ---           ---
http://www.jps.net/cbarker          -----@@       -----@@       -----@@
                                   ------@@@     ------@@@     ------@@@
Water Resources Engineering       ------   @    ------   @   ------   @
Coastal and Fluvial Hydrodynamics -------      ---------     --------    
------------------------------------------------------------------------
------------------------------------------------------------------------



More information about the NumPy-Discussion mailing list