WIP started on adding the c++ doxygen docu to the python classes.
As example some docu is added to the dune.common.DynmaicMatrix class and to the reference element in dune-geometry. Testing:
import dune.common help(dune.common.DynamicMatrix) import dune.geometry ref = dune.geometry.referenceElement(dune.geometry.triangle) help(ref)
The idea is to generate a header file containing the doxygen docstring. This header is then included in the headers containing the python bindings. The extraction relies on clang's LLVM.
- The header needs to be generated and can't be put into the build dir since then downstream modules can't include it.So if
dune/python/common/dynamicmatrix.hhincludes it's doc string header, and some file in
dynamicmatrix.hhthis will fail if the doc string header is in the build dir of dune-common. The current approach therefore generates the header in the source dir.
- If LLVM is not available the header can't be generated. That is especially unfortunate when using the pypi packages. So it would be good to at least in that case include the header in the package. SKBUILD will not do this by default since at the moment the header is not under version control.