GSoC/GCI Archive
Google Summer of Code 2012 ASCEND

Python bindings rewrite

by Shaun for ASCEND

Now ASCEND is mainly use the PYGTK to present the GUI. But the base of ASCEND is built upon C/C++ which provide efficiencies. While it is hard to code python modules from scratch, ASCEND chose SWIG to bridge C/C++ and Python which is used by PYGTK. In ASCEND, we use SWIG to build a core PYTHON extension module called “ascpy” which is the adapter between the core calculation engine (libascend.so) and PYGTK-based user interface. This core adapter is mainly described by a SWIG interface file which currently contains lots of C++ style wrappers which make this SWIG interface file too long and not so easy for understanding. So the target is to makes these SWIG interface files “leaner and meaner”. This target can be achieved by clearing the C++ style wrappers in SWIG interface files and replacinge them with C wrappers contained by several SWIG interface files. The other possible way is to use CYTHON rewriting the interface between C/C++ and PYTHON. Anyway, no matter which method we choose, we should move on to make the GUI layer still works well because we actually changed the core adapter for PYTHON to use the core calculation engine.