Code Generation Terminology#

Types of generated code#

Python Wrapper

The code that exports the C++ wrapped class to Python. Python wrapper refers to all the code needed to export a C++ class to Python, and Python method/function wrapper means the specific function that calls the C++ method/function on behalf of Python. This code is invoked from the Python side.

C++ Wrapper

This term refers to a generated C++ class that extends a class from the wrapped library. It is generated only when a wrapped C++ class is polymorphic, i.e. it has or inherits any virtual methods. The C++ Wrapper overrides the virtual methods of the wrapped C++ class with code that allows for overriding the method with a Python implementation. It checks whether a corresponding method in the Python instance exists and calls it. This code is invoked from the C++ side.

Specifying a target for modifications#

In the typesystem files, the class attribute is used to which class a modification is applied (see Code Injection Semantics, Object ownership). The value Target means the modification is applied to the Python Wrapper. The value Native means the modification is applied to the C++ Wrapper.