annotatec helps you create Python packages with C embeddings.
Imagine you're developing C library and already have more than 50 functions. Sometimes you change signatures of old functions or rename them. It'll be headache to write and support all ctypes-declarations for Python wrapper. annotatec will create all Python objects for you. All you need is to provide declarations, which can be placed directly into your C code.
This library can be installed with pip
:
pip install annotatec
Or build it and install yourself:
pip install git+https://github.com/lynnporu/annotatec.git#egg=annotatec
You have some library lib.c
and it's header lib.h
. These files were compiled into lib.so
(or lib.dll
in Windows).
lib.c
source:
#include "lib.h"
int sum(int a, short b, long long c) { return a + b + c; }
lib.h
source:
/* @function sum
* @return int
* @argument int
* @argument short
* @argument longlong
*/
int sum(int, short, long long);
Here's a Python wrapper:
import annotatec
libc = annotatec.Loader(
library="lib.so", headers=["lib.h"])
That's all! Now you can test it like so:
>>> libc.sum(1, 2, 3)
<<< 6
Read detailed reference in wiki-pages.