The bindings - instead of being exposed directly to the user - are now located in the '_core' library, which is in the 'core' module of the package. By inserting an extra layer between the user and the bindings it is possible to group related concepts together, independently of their implementation, namely c++ or pure python.
Moreover, it is also possible to extend the functionality of c++ classes by adding to them new methods that we implement in pure python.
For example, this pull requests extends IntegrationOptions class by providing it with a str and a repr member function defined in the init.py. If need be these can be implemented in c++ later.
If addopted, this approach will improve both the package development time and its user-friendliness.
Python bindings package should follow a more nested structure, such as the one described here. https://www.boost.org/doc/libs/1_71_0/libs/python/doc/html/tutorial/tutorial/techniques.html#tutorial.techniques.creating_packages
The bindings - instead of being exposed directly to the user - are now located in the '_core' library, which is in the 'core' module of the package. By inserting an extra layer between the user and the bindings it is possible to group related concepts together, independently of their implementation, namely c++ or pure python. Moreover, it is also possible to extend the functionality of c++ classes by adding to them new methods that we implement in pure python. For example, this pull requests extends IntegrationOptions class by providing it with a str and a repr member function defined in the init.py. If need be these can be implemented in c++ later.
If addopted, this approach will improve both the package development time and its user-friendliness.