The goal of this example is to show how an existing C codebase for numerical computing (here c_code.c) can be wrapped in Cython to be exposed in Python.
The meat of the example is that the data is allocated in C, but exposed in Python without a copy using the PyArray_SimpleNewFromData numpy function in the Cython file cython_wrapper.pyx.
Note that the ownership of the memory is then handed off to the Python VM, and there is no control of when Python will deallocate the memory. If the memory is still being used by the C code, please refer to the following blog post by Travis Oliphant: http://blog.enthought.com/python/numpy-arrays-with-pre-allocated-memory
To build it you will need Cython, numpy, and a C compiler.
Run:
$ python setup.py build_ext --i
to build the C extension in-place.
To test the C-Python bindings, run the test.py file.
| Author: | Gael Varoquaux |
|---|---|
| License: | BSD |