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

Extend documentation: Use-cases, examples and motivation #26

Open
kljohann opened this issue Dec 11, 2019 · 0 comments
Open

Extend documentation: Use-cases, examples and motivation #26

kljohann opened this issue Dec 11, 2019 · 0 comments

Comments

@kljohann
Copy link
Owner

In order to better understand what benefit genpybind could provide to a project, some use cases and links to existing projects might be helpful. For example:

  • Expose a C++ API to Python: This one is obvious, but can also be achieved using hand-written bindings. In addition to reducing the manual effort, genpybind helps in those cases where your interface is still undergoing regular changes, where manual bindings might be a hindrance.
  • Interactive use and exploration of a library's API: Without much overhead you can add a single line in order to exercise your newly-written function using the REPL.
  • Facilitated unit testing: (This is one of my favourite points.)
    • Writing tests in Python could be easier, faster or more approachable. (In addition it does not require Knowledge of C++, which might help depending on your developers'/testers' backgrounds.)
    • Unit testing libraries like https://docs.pytest.org could reduce the boilerplate involved in writing a test. It may be faster to go from interactive exploration of your implementation in the REPL to a unit test.
    • You can take advantage of property based testing using a powerful, stable and well-tested framework like https://hypothesis.readthedocs.io.

Also, standalone examples and links to projects that make use of genpybind (e.g. https://github.com/electronicvisions) would likely be of interest for potential users.

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

No branches or pull requests

1 participant