Подключить Sipinx autodoc-skip-member к моей функции
Я хочу использовать событие sphinx autodoc-skip-member, чтобы выбрать часть членов в определенном классе python для документации.
Но это не ясно из документов sphinx, и я не могу найти примеров, которые иллюстрируют: где я должен поставить код для подключения этого? Я вижу Sphinx.connect, и я подозреваю, что это идет в моем conf.py, но когда я пытаюсь изменить этот код в conf.py, t найти объект приложения, с которым я должен подключиться():
def maybe_skip_member(app, what, name, obj, skip,
options):
print app, what, name, obj, skip, options
return False
# This is not even close to correct:
#from sphinx.application import Sphinx
#Sphinx().connect('autodoc-skip-member', maybe_skip_member)
Указатель на простой пример был бы идеальным.
Ответы
Ответ 1
Ага, последнее усилие на маленьком googling появилось этот пример, прокрутите вниз. По-видимому, функция setup() в conf.py будет вызвана с приложением. Я смог определить следующее в нижней части моей conf.py:
def maybe_skip_member(app, what, name, obj, skip, options):
print app, what, name, obj, skip, options
return True
def setup(app):
app.connect('autodoc-skip-member', maybe_skip_member)
Что явно бесполезно (он пропускает все), но тот минимальный пример, который я искал и не мог найти...
Ответ 2
Этот ответ расширяется на ответ bstpierre. Ниже приведена соответствующая часть моего conf.py
:
autodoc_default_flags = ['members', 'private-members', 'special-members',
#'undoc-members',
'show-inheritance']
def autodoc_skip_member(app, what, name, obj, skip, options):
exclusions = ('__weakref__', # special-members
'__doc__', '__module__', '__dict__', # undoc-members
)
exclude = name in exclusions
return skip or exclude
def setup(app):
app.connect('autodoc-skip-member', autodoc_skip_member)