[lldb][docs] Force documentation emission of special Python class members
authorRaphael Isemann <teemperor@gmail.com>
Wed, 7 Jul 2021 17:28:47 +0000 (19:28 +0200)
committerRaphael Isemann <teemperor@gmail.com>
Wed, 7 Jul 2021 17:49:50 +0000 (19:49 +0200)
commit3ebfeb258698db82b7525cfaa1efd04db93d72ba
tree3674bc729e399a4269d2bae6021193b24d3af7e4
parentd2e32fa493a272c21dee2c6cbf52e501f9ee3908
[lldb][docs] Force documentation emission of special Python class members

The current LLDB Python docs are missing documentation for all the special
members such as conversion functions (`__int__`) and other special functions
(`__len__`).

The reason for that is that the `automodapi` plugin we're using to generate the
*.rst files simply doesn't emit them. There doesn't seem to be any config option
to enable those in `automodapi` and it's not even clear why they are filtered. I
assume the leading underscore in their names makes them look like private
methods.

This patch just forcibly adds a few selected special members functions to the
list of functions that sphinx should always document.  This will cause sphinx to
warn if a class doesn't have one of those functions but it's better than not
having them documented.

The main motivation here is that since `SBAddress.__int__` is one of the few
functions that is only available in the embedded Python REPL which would be good
to have in the public documentation.

Fixes rdar://64647665

Reviewed By: JDevlieghere

Differential Revision: https://reviews.llvm.org/D105480
lldb/docs/conf.py