Hello, I do have problems for checking for integer array types in a C extension under Windows. I've put together a small example to illustrate the problem:
------------------------------------------------------------------------ h...@pc090498 ~/pytest $ cat tst.c #include <stdio.h> #include "Python.h" #include "numpy/arrayobject.h" #define TRY(E) (E) ; if(PyErr_Occurred()) {fprintf(stderr, "%s:%d\n", __FILE__, __LINE__); return NULL;} static PyObject* inttest_cfunc (PyObject *dummy, PyObject *args) { PyArrayObject *array; TRY(PyArg_ParseTuple(args, "O!:inttest", &PyArray_Type, &array)); fprintf(stderr, "PyArray_TYPE(array): %ld; NPY_INT: %ld\n", PyArray_TYPE(array), NPY_INT); if (PyArray_TYPE(array) == NPY_INT) { fprintf(stderr, "found NPY_INT\n"); } else { fprintf(stderr, "NPY_INT not found\n"); } Py_RETURN_NONE; } static PyMethodDef mymethods[] = { { "inttestfunc", inttest_cfunc, METH_VARARGS, "Doc string"}, {NULL, NULL, 0, NULL} /* Sentinel */ }; PyMODINIT_FUNC inittst(void) { (void)Py_InitModule("tst", mymethods); import_array(); } h...@pc090498 ~/pytest $ python setup.py build running build ... h...@pc090498 ~/pytest $ cat xx.py import tst, sys import numpy as np print >>sys.stderr, np.__version__, np.__path__ tst.inttestfunc(np.array((1,2),dtype=np.int)) tst.inttestfunc(np.array((1,2),dtype=np.int8)) tst.inttestfunc(np.array((1,2),dtype=np.int16)) tst.inttestfunc(np.array((1,2),dtype=np.int32)) tst.inttestfunc(np.array((1,2),dtype=np.int64)) h...@pc090498 ~/pytest $ PYTHONPATH=build/lib.win32-2.5/ python xx.py 1.4.1 ['C:\\Python25\\lib\\site-packages\\numpy'] PyArray_TYPE(array): 7; NPY_INT: 5 NPY_INT not found PyArray_TYPE(array): 1; NPY_INT: 5 NPY_INT not found PyArray_TYPE(array): 3; NPY_INT: 5 NPY_INT not found PyArray_TYPE(array): 7; NPY_INT: 5 NPY_INT not found PyArray_TYPE(array): 9; NPY_INT: 5 NPY_INT not found ------------------------------------------------------------------------ NPY_INT32 is 7, but shouldn't NPY_INT correspond to numpy.int. And what kind of int is NPY_INT in this case? Kind regards Berthold Höllmann -- Germanischer Lloyd AG Berthold Höllmann Project Engineer, CAE Development Brooktorkai 18 20457 Hamburg Germany Phone: +49(0)40 36149-7374 Fax: +49(0)40 36149-7320 e-mail: berthold.hoellm...@gl-group.com Internet: http://www.gl-group.com This e-mail and any attachment thereto may contain confidential information and/or information protected by intellectual property rights for the exclusive attention of the intended addressees named above. Any access of third parties to this e-mail is unauthorised. Any use of this e-mail by unintended recipients such as total or partial copying, distribution, disclosure etc. is prohibited and may be unlawful. When addressed to our clients the content of this e-mail is subject to the General Terms and Conditions of GL's Group of Companies applicable at the date of this e-mail. If you have received this e-mail in error, please notify the sender either by telephone or by e-mail and delete the material from any computer. GL's Group of Companies does not warrant and/or guarantee that this message at the moment of receipt is authentic, correct and its communication free of errors, interruption etc. Germanischer Lloyd AG, 31393 AG HH, Hamburg, Vorstand: Dr. Hermann J. Klein, Dr. Joachim Segatz, Pekka Paasivaara, Vorsitzender des Aufsichtsrats: Dr. Wolfgang Peiner _______________________________________________ NumPy-Discussion mailing list NumPy-Discussion@scipy.org http://mail.scipy.org/mailman/listinfo/numpy-discussion