On Thursday, 25 February 2016 at 21:40:45 UTC, Wyatt wrote:
I have a project I started in Python before I realised I really
don't enjoy Python. It's been on the back-burner for a few
years and I'd like to start again in D, but there's a
particular python module (Mutagen) that I outright refuse to
reimplement. What's the state of the art in calling Python
code from D?
I have a hunch PyD fits somewhere in this equation, but the
documentation is pretty sparse, and what little I can find
about this area makes it seem like a fairly tedious manual
process. Is there a less-painful and intensive way to truss
things up? Something to generate a simple D wrapper from a
python module?
-Wyatt
If you want to call python from D, you should be able to install
pyd with dub. Depending on your python setup, it should Just
Work. If python is set up weird (ubuntu), you will need to
generate some custom dub config and insert it in your dub.json.
look for generate_dub_config.py on github for the generation
part. or install pyd with pip and run python -m
pyd.generate_dub_config
after that, you should be good to go. some example usage off the
top of my head that probably doesn't compile:
py_init();
InterpContext context = new InterpContext();
context.pystmts(`
from mutagen.flac import FLAC
audio = FLAC("example.flac")
audio["title"] = "An example"
`);
auto audio = context.audio;
audio.pprint();
audio.save();