Interrogate is a binding generator for Python and other scripting languages. It was designed for use with the Panda3D game engine, but can be used for other libraries. It was recently split out of the Panda3D codebase, and work is ongoing to refactor the code and make it more independent.
Interrogate consists of the following components:
- A library for C++ parsing.
- Stub headers necessary for efficiently parsing code that uses the C++ standard library and other popular thirdparty libraries.
- The interrogate command-line tool, which parses the given set of C++ files and outputs Python and/or C bindings.
- The interrogatedb library, which can be used to parse the .idb files that may be generated by the above tool. These can be used to generate documentation files.
- Python bindings for the interrogatedb library.
Interrogate is licensed under the Modified BSD License. See the LICENSE file for more details.
The following back-ends are currently implemented:
-c
: generate C wrapper functions for use with an FFI.-python
: the "simple" Python back-end, supporting basic functions. Supports the stable Python API.-python-obj
: a version of the above back-end with object support.-python-native
: a very powerful back-end with an exhaustive feature list, however, the resulting binaries currently depend on Panda3D.
If you encounter any bugs when using Interrogate, please report them in the bug tracker. This is hosted at:
https://github.com/panda3d/interrogate/issues
Make sure to first use the search function to see if the bug has already been reported. When filling out a bug report, make sure that you include as much information as possible to help the developers track down the issue, such as your version of interrogate, operating system, architecture, and any code and models that are necessary for the developers to reproduce the issue.
If you're not sure whether you've encountered a bug, feel free to ask about it in the forums or the IRC channel first.