Oct 10 – 14, 2016
San Francisco Marriott Marquis
America/Los_Angeles timezone

Pythonization API for Cppyy

Oct 13, 2016, 3:30 PM
1h 15m
San Francisco Marriott Marquis

San Francisco Marriott Marquis

Poster Track 5: Software Development Posters B / Break


Wim Lavrijsen (Lawrence Berkeley National Lab. (US))


Cppyy provides fully automatic Python/C++ language bindings and so doing
covers a vast number of use cases. Use of conventions and known common
patterns in C++ (such as smart pointers, STL iterators, etc.) allow us to
make these C++ constructs more "pythonistic." We call these treatments
"pythonizations", as the strictly bound C++ code is turned into bound code
that has a Python "feel." However, there are always a few corner cases that
can be improved with manual intervention. Historically, this was done with
helpers or wrapper code on the C++ or Python side.
In this paper, we present the new pythonization API that standardizes these
manual tasks, covering the common use cases and in so doing improving
scalability and interoperability. This API has been provided for both CPython
and PyPy. We describe the fundamental abstractions that it covers, how it
can be used to resolve conflicts across packages, and its performance.

Primary Keyword (Mandatory) Analysis tools and techniques

Primary authors

Mr Toby St Clere Smithe (Warwick University) Wim Lavrijsen (Lawrence Berkeley National Lab. (US))

Presentation materials