A Python wrapper exposes an underlying implementation through Python objects and function calls. In Cython, generated code separates a Python-facing wrapper from the function implementation, allowing Python code to call native C logic. section 5.2.3 section 7.4.1
The wrapper preserves the Python-level interface: parameters and return values remain Python objects. It performs packing, unpacking, and conversions before invoking the implementation, so annotations can make the native implementation faster while making wrapper conversion more involved. section 5.2.3
Cython wrapper and typed implementation
A plain Cython function accepts a Python object and performs Python-level addition. An annotated version accepts a native C integer internally. Both remain callable through Python, but the annotated path converts the Python argument before executing native integer addition.
