-
Piotr Maślanka authoredba9eb186
usage.rst 1.67 KiB
Usage
To use snakehouse just use the following in your setup.py
:
from snakehouse import Multibuild, build
extensions = build([
Multibuild('example_module', list_of_pyx_files)
], compiler_directives={
'language_level': '3',
})
setup(name='example_module',
version='0.1',
packages=['example_module'],
ext_modules=extensions
)
You can pass also setuptools
's Extensions
objects, as detailed in
example.
Full pydoc of Multibuild
and build
is here
You should use dont_snakehouse
for debugging and unit tests, as
snakehouse has a sad tendency to dump core on unhandled exceptions. To prevent that
from happening remember to handle your exceptions and debug using this flag.
Helper functions
Finding files
Instead of manually specifying list of pyx and c files to compile you can use the following functions:
Specifying requirements
If you add a MANIFEST.in file with contents:
include requirements.txt
Then you can write the following in your setup.py:
from snakehouse import read_requirements_txt
setup(install_requires=read_requirements_txt())