Sharing declarations
When writing your Cython modules, you may want to reorganize your most used functions and classes declaration in a separate file so that they can be reused in different modules. Cython allows you to put these components in a definition file and access them with cimport
statements.
Let's say that we have a module with the max
and min
functions, and we want to reuse those functions in multiple Cython programs. If we simply write a bunch of functions in a .pyx
file, the declarations will be confined to the same file.
Note
Definition files are also used to interface Cython with external C code. The idea is to copy (or, more accurately, translate) the types and function prototypes in the definition file and leave the implementation in the external C code that will be compiled and linked in a separate step.
To share the max
and min
functions, we need to write a definition file with a .pxd
extension. Such a file only contains the types and function prototypes that we want to share...