Thank you for a great feature you implemented recently: Multi-Python PyROOT to
use Python 3 and 2 with a single installation annonced in ROOT Version 6.22 Release Notes.
I want to ask you some questions about ROOT documentation mechanism with Python
and Jupyter.
R seems to be able to convert documentation from roxygen (source code) to
console and even Jupyter. For instance I tested this tutorial: Writing an R package from scratch | Not So Standard Deviations. After documentation build and package installation the comments from my demo package myFunction_6916762.tar.gz (744 Bytes) was correctly printed in the console:
$ R
R version 3.6.1 (2019-07-05) -- "Action of the Toes"
Copyright (C) 2019 The R Foundation for Statistical Computing
Platform: x86_64-conda_cos6-linux-gnu (64-bit)
[...]
> ?myFunction::add
add package:myFunction R Documentation
Add together two numbers
Description:
Testing add function documentation in bt_spn #20401.
Usage:
add(x, y)
Arguments:
[...]
(END)
Does a similar mechanism exist in ROOT? A previous topic may indicate that this
wasn’t the case in May 2019: Python help function on ROOT class methods.
However I suppose ROOT may have new documentation features in recent releases.
I think the underlying question is: does/can cling know about doxygen comments for functions and classes, the same way as Python functions and classes store theirs in their __doc__ attribute? (because all ways to use ROOT interactively – ROOT prompt, jupyter notebooks and Python/PyROOT – ultimately rely on cling to call into the C++ code).
I’m pretty sure the answer is that cling, like the good C++ interpreter it is, completely ignores comments @Axel is that right?
clingdoes know about comments But going from there to documentation means re-implementing doxygen in ROOT. That’s a BIG project… I think .help is a more reasonable path: it makes use of doxygen’s power, has a nicer presentation (though some prefer terminals), - and we have it already.
That would imply to have the full Doxygen manual installed locally on machine ? isn’t ?
And that would fly for simple helps like the example you showed. But try complex classes with huge help, full of plots like THistPainter…
…and we only have limited resources, so we need to really focus on what’s needed by the vast majority of our users. We did not have a lot of requests for doc in terminal (through we did have some!)
Given the current “polls” I don’t expect this to happen.