Shiboken is the generator used by the Qt for Python project. It outputs C++ code for CPython extensions, which can be compiled and transformed into a Python module.
C++ projects based on Qt can be wrapped, but also projects which are not related to Qt.
Shiboken uses an API Extractor that does most of the job, but it requires a typesystem (XML file) to customize how the C++ classes/methods will be exposed to Python.
The typesystem allows you to remove arguments from signatures, modify return types, inject code and add conversion rules from the C++ data types to Python data types, manipulate the ownership of the objects, etc.
An example related to wrap a C++ library not depending on Qt can be found in our repository.
Additionally, you can find a couple of tests inside the git repository.
For a more advanced case regarding extending a Qt/C++ application with Python bindings based on the idea of the PySide module, you can check the scriptableapplication example in our repository.
You can find more information about Shiboken in our official documentation page.