- Notifications
You must be signed in to change notification settings - Fork3
Black Magic to hook into setuptools and distutils for Extensions
License
bruxisma/brujeria
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
Brujería is a python library that simplifies development workflow for nativeextensions. It does this by providing import hooks that allow you to compileyour extensions on import (much likecppimport) so you can play around withthe API in a REPL. Lastly, it provides some hooks so that using these fromtools likepoetry are just a single line. It does all of this via CMake, butin a way to reduce the need to touch CMake in the first place.
Brujería currently utilizesIXM to reduce the overhead ofmaintaining a CMake project.
Currently, Brujería provides the following:
- Automatic discovery of C and C++ extensions.
- Basic MinGW Support (CPython does not guarantee this)
- Works on Windows, macOS, and Linux
- The ability to mix Cand C++ in a single extension (
distutils
/setuptools
do not currently permit this) - Basicpoetry integration via preprovided
build
function. pyproject.toml
integration for configuration settings
Brujería is a spanish word for "witchcraft". Given the strange, mystic, andsometimes arcane steps that distutils and setuptools must take when buildingnative extensions, it only makes sense that a library that takes advantage ofvarious undocumented hooks might be labelled Black Magic.