KavrakiLab / robowflex

Making MoveIt Easy!
https://kavrakilab.github.io/robowflex/
Other
114 stars 24 forks source link

[WIP] Feature: Add Python bindings #276

Open wbthomason opened 2 years ago

wbthomason commented 2 years ago

This PR adds a generator for Python bindings, using pybind11 and libclang. It is intended as a MVP for Python bindings; additional features (e.g. bidirectional bindings to allow overriding of virtual methods from Python) would be good to add in the future.

This isn't 100% ready for merge yet, but it's done enough that I wanted to make a draft PR to start getting eyes on the work. Currently, the generate_bindings.py script can successfully generate pybind11 code for the entirety of robowflex_library, with the following caveats/TODOs which should be resolved prior to merge.

wbthomason commented 2 years ago

Should consider switching to https://github.com/wjakob/nanobind - it's pybind11 (by the same author), but for C++17 and faster (compile time and run time) as a result.