GSOC Week 9

This week, I worked on debugging the wrapped code and refactored the code responsible for generating the R6 fields (private, public and active) in a proper syntactical manner. Most of the bugs were mainly syntax related like missing “;” between two function declarations in the public section, missing declaration of R6 fields, etc.

All the interface classes (BinaryDataArray,Spectrum,Chromatogram) were being wrapped with “_Interfaces” suffix which was an issue considering that variable name in R cannot start with underscore. I made changes to expose these classes as it is, without any change in the implementation (still python object is initialized using Interfaces class) or invocation of the underlying python object.

Some classes like ConfidenceScoring contain initialize method and in R6 class system, constructor is created using initialize method which lead to clash as function overloading is not supported in R6 classes. So, to handle such cases, initialize method is exposed with an alias name.

For some classes like ConvexHull2D the addons folder has methods which are already wrapped once before by autowrap as their declarations are present in pxds too. Cython seems to be ignoring their overloaded definition in addons and considers only the first definition. So, for now these overloaded methods cannot be accessed in R too.

Going Forward

That’s it for now. Next, I would try to support the methods or class provided in the addons folder.

Written on August 16, 2020