Libcootapi is written in C++ and documented with Doxygen.

I wanted this functionality to be available via Python and I chose nanobind as the means to do that.

Nanobind provides access to practically all of the many hundreds of functions in the C++ class and it would be useful is the Python API was as well documented as was the C++ api. Transfering the documentation from C++ to Python “by hand” would be tedious. So Lucrezia (@lulu_catapano) and I wrote a Python script to transfer the Doxygen documentation into Python docstrings in reStructured Text format, which then get processed by Sphinx so that the Python API looks like read-the-docs documentation from native Python code.

As well as attractive HTML output, the intermediate documented python function stubs work with LSP and intellisense to provide api documentation and completions.

The script works pretty well for our chapi documentation. It might work for other nanobinders in a similar situation.