Skip to Main Content
Cython
book

Cython

by Kurt W. Smith
January 2015
Intermediate to advanced content levelIntermediate to advanced
254 pages
6h 17m
English
O'Reilly Media, Inc.
Content preview from Cython

Chapter 6. Organizing Cython Code

Namespaces are one honking great idea—let’s do more of those!

T. Peters “The Zen of Python”

Python provides modules and packages to help organize a project. This allows us to group functions, classes, and variables into logical units, making a project easier to understand and navigate. Modules and packages also make it easier to reuse code. In Python, we use the import statement to access functions, objects, and classes inside other modules and packages.

Cython also allows us to break up our project into several modules. It fully supports the import statement, which has the same meaning as in Python. This allows us, at runtime, to access Python objects defined in external pure-Python modules or Python-accessible objects defined in other extension modules.

If that were the end of the story, it would not allow two Cython modules to access each other’s cdef or cpdef functions, ctypedefs, or structs, and it would not allow C-level access to other extension types.

To address this, Cython provides three file types that help organize the Cython-specific and C-level parts of a project. Until now we have been working with Cython source files with a .pyx extension, known as implementation files. Here we will see how these files work with a new Cython file type called definition files, which have a .pxd extension. We will also look at the third Cython file type, with a .pxi extension; these are called include files.

In addition to the three file types, Cython ...

Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Start your free trial

You might also like

Learning Cython

Learning Cython

Caleb Hattingh
High Performance Python, 2nd Edition

High Performance Python, 2nd Edition

Micha Gorelick, Ian Ozsvald

Publisher Resources

ISBN: 9781491901731Errata PageSupplemental Content