Skip to content
Snippets Groups Projects
index.rst 1.31 KiB

Welcome to snakehouse's documentation!

Mandatory reading

Take a look at example on how to multi-build your Cython extensions.

Don't place modules compiled that way in root .py file's top level imports. Wrap them in a layer of indirection instead!

This applies to unit tests as well!

When something goes wrong (eg. the application throws an unhandled exception) the built module has a tendency to dump core. Try to debug it first by passing dont_snakehouse=True to your modules in the debug mode.

Also note that if you are compiling in dont_snakehouse mode then your modules should have at least one of the following:

  • a normal Python def
  • a normal Python class (not cdef class)
  • a line of Python initialization, eg.
a = None

or

import logging

logger = logging.getLogger(__name__)

Otherwise PyInit won't be generated by Cython and such module will be unimportable in Python. Normal import won't suffice.

Indices and tables

  • :ref:`genindex`
  • :ref:`modindex`
  • :ref:`search`