Нашел способ!
Подробное описание настройки пропуска участников здесь я смог определить правило выборочного пропуска участников.
В conf.py:
def hide_non_private(app, what, name, obj, skip, options):
# if private-members is set, show only private members
if 'private-members' in options and not name.startswith('_'):
# skip public methods
return True
else:
# do not modify skip - private methods will be shown
return None
def setup(app):
app.connect('autodoc-skip-member', hide_non_private)
Всякий раз, когда autodoc должен решить, включать ли элемент в документацию (что он и делает всякий раз, когда предмет директивы содержит этот член), вызывается эта функция. Функция возвращает логическое значение, указывающее, следует ли пропустить этот член. Если True
, он не отображается. Если False
, то да. Если None
, то результат этой функции игнорируется и вызывается следующий метод проверки пропуска.
Если директива содержит параметр :private-members:
и имя члена не начинается с _
(т. е. это общедоступный метод), он пропускается и не будет отображаться в документации.
Итак, когда я создаю документацию, используя:
.. autoclass:: my_package.my_file.MyClass
:members:
:private-members:
Публичные методы не показаны, а приватные — есть.
Однако мне все еще нужно установить :members:
, иначе эта проверка даже не произойдет. Если я найду где-нибудь, где мне действительно нужно перечислить как общедоступные, так и частные методы, мне нужно будет найти более сложную проверку.
person
snazzybouche
schedule
22.08.2019