panosz / ode_integrators

Examples of ode solvers
0 stars 0 forks source link

Better package #12

Closed panosz closed 4 years ago

panosz commented 4 years ago

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.