Warren Weckesser wrote:
I would like to take the example shown here:
http://docs.scipy.org/doc/numpy/user/c-info.how-to-extend.html#example
and complete the code so I can build and test the extension module. Is that example currently correct? It is slightly different from the older example in the numpy book, so someone must have had a reason to change it.
I've added the C array of PyMethodDefs and the module init function, but I'm still searching for the correct #includes for the numpy stuff. Any suggestions (or pointers to similar simple but complete examples) would be appreciated.
I've made some progress, and now I'm getting a bus error. With the following extension module, calling example.foo results in a bus error, regardless of the arguments given. The error occurs in the call to PyArg_ParseTuple. I'm using same format string as in the example in the numpy docs, "O!". Any ideas? ----- #include <stdio.h> #include "Python.h" #include "numpy/arrayobject.h" static PyObject *foo_wrap(PyObject *dummy, PyObject *args) { PyObject *arg1 = NULL; printf("boo\n"); if (!PyArg_ParseTuple(args, "O!", &PyArray_Type, &arg1)) { printf("bad\n"); return NULL; } printf("here\n"); return Py_None; } static PyMethodDef wrappers[] = { {"foo", foo_wrap, METH_VARARGS, "just a test"}, {NULL, NULL, 0, NULL} /* Sentinel */ }; PyMODINIT_FUNC initexample(void) { (void) Py_InitModule("example", wrappers); } -----
Warren
_______________________________________________ NumPy-Discussion mailing list NumPy-Discussion@scipy.org http://mail.scipy.org/mailman/listinfo/numpy-discussion