autowrap v0.0.1 - Automatically wrap existing D code for use in Python and Excel
Atila Neves
atila.neves at gmail.com
Wed Apr 18 15:28:07 UTC 2018
http://code.dlang.org/packages/autowrap
This came out of the need at work to take existing D code and
make it available for both Excel and Python.
Both pyd and excel-d make the reasonable assumption that one is
using them to write code specifically for those environments.
That breaks when there's existing production D code one wants to
wrap.
The idea is to not "dirty" the existing code with dependencies on
either pyd or excel-d and instead wrap them from outside the
existing dub packages, whilst still using pyd and excel-d behind
the scenes.
The end result is that if you have two D modules called
`my.module1` and `my.module2` and you want to create a Python
extension called `mylibrary`, then one dub.sdl and one
source/app.d such as this is enough:
import autowrap.python;
mixin(
wrapAll(
LibraryName("mylibrary"),
Modules("my.module1", "my.module2", /* ... */),
)
);
Seriously, that's it.* Well, other than the fact that dub will
produce libmylibrary.so on Linux and what you need is
mylibrary.so, so you'll have to rename the file.
The functions that are to be enabled for wrapping must be marked
`export`, both for Python and Excel. It is a form of tagging and
the production code must be changed to accomodate it, but at
least it introduces no extra dependencies.
For Python, any struct used in an `export` function's parameters
or return type is automatically wrapped, as well as any structs
inside it.
Atila
* Except maybe for those pesky bug things I can't seem to get rid
of.
More information about the Digitalmars-d-announce
mailing list