Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add Python bindings #105

Draft
wants to merge 49 commits into
base: main
Choose a base branch
from
Draft

Add Python bindings #105

wants to merge 49 commits into from

Conversation

ll-nick
Copy link
Collaborator

@ll-nick ll-nick commented Dec 19, 2024

This contributes python bindings to use all the awesome features of the library in a python environment.

Analogously to KIT-MRT/util_caching#6, this doesn't add the bindings directly which wouldn't be possible because the arbitration graphs library is fully templated.
Instead, this adds a wrapper function that you need to call using the desired types to build a python library for them.
To make sure that everything works as expected, I translated all of the unit tests to python.

#minor

…lent to behavior.cpp

Only missing YAML features
This allows removing the sys.append hack since both the python module
and the tests end up in the same directory.
Stream conversion are not supported out of the box in pybind and we
would call to_str anyway.
Still missing the tests for verifiers and different sub commands
Define "wrong" type in definition. This removes some duplicated code and
allows binding the type using pybind.
We need to move it to a python test where we include ag_verifier as we
cannot include bindings with the different template parameters in the
same python file.
Still missing the verification and different subcommand tests
This makes it possible to create a "RejectingVerifier" without creating
a new Verifier class which would then require to build yet another
python library
…h them in cmake.

This also tidies up the CMakeLists a little bit for the python tests.
We don't need this binding an cannot even call it from python because
the Node class has no bindings
…t to 1 if tests fail

Otherwise ctest will not report broken tests
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant