Sphinx autodoc — пропуск элементов с установленным автоматическим методомPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Sphinx autodoc — пропуск элементов с установленным автоматическим методом

Сообщение Anonymous »

Я использую sphinx, и в некоторых файлах установлена ​​директива .. automethod::. Мне нужен способ, чтобы sphinx показывал все методы __init__ без удаления директивы .. automethod:: и без каких-либо предупреждений. Я пытался просмотреть стек, но ничего подобного не увидел. Вот MWE:

Код: Выделить всё

class A():
"""
documentation

.. automethod:: __init__
"""
def __init__(self):
"""
documentation for A
"""

class B:
"""
documentation

"""
def __init__(self):
"""
documentation for B
"""

Код: Выделить всё

def skip_member(app, what, name, obj, skip, options):
// What do I put here to skip the __init__ of class A, but *not* the __init__ of class B?
if name == '__init__':
return False
return skip

def setup(app):
app.connect('autodoc-skip-member', skip_member)
При этом я получаю следующую ошибку:

Код: Выделить всё

/home/xxx/sphinx-test/classFile.py:docstring of classFile.A.__init__:1: WARNING: duplicate object description of classFile.A.__init__, other instance in usage, use :no-index: for one of them
Я хочу избавиться от этого сообщения об ошибке без удаления директивы .. automethod::. Возможно ли это вообще? Альтернатива, которая также приемлема, — оставить Skip_member как есть, но изменить MethodDocuenter (или что-то еще?), чтобы игнорировать директиву automethod, если имя — __init__, но не уверен, как это лучше всего сделать.

Почему я пытаюсь это сделать? Я работаю над совместным проектом, поэтому не могу удалить директивы automethod, но мне нужен автоматизированный способ отображения вся документации, включая частные/скрытые методы. (Таким образом, у нас будет две документации: по сути одна для потребителей и одна для разработчиков). Удаление директивы automethod будет означать, что потребительская версия теперь будет содержать больше информации, чем необходимо, поэтому я не хочу их удалять, но, не удаляя их, когда я пытаюсь запустить документацию по сфинксу, я получаю кучу повторяющихся методов, и поэтому мне нужен какой-то способ подавить либо те, которые включены из automethod, либо из Skip_method способ.
Изменить:
Что-то, что, возможно, было неясно из вышеизложенного. Технически я мог бы использовать :no-index:, чтобы ошибка не появлялась, но тогда метод дублируется (в документации появляется дважды).

Код: Выделить всё

.. automethod:: __init__
:no-index:
Когда я пытаюсь просмотреть переменную options в Skip_member, я получаю словарь, но отображается только одна опция — Members. Кроме того, что возвращается как класс, что кажется странным? Я бы предположил, что он вернется как метод, поскольку мы используем автоматический метод?

Подробнее здесь: https://stackoverflow.com/questions/789 ... method-set
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Spinx autodoc — пропуск элементов с установленным автоматическим методом
    Anonymous » » в форуме Python
    0 Ответы
    12 Просмотры
    Последнее сообщение Anonymous
  • Получение sphinx autodoc для удобного набора текста. Annotated, Pydantic и autodoc-pydantic.
    Anonymous » » в форуме Python
    0 Ответы
    28 Просмотры
    Последнее сообщение Anonymous
  • Расширение Sphinx «autodoc» не может найти даже гарантированно существующие стандартные модули.
    Anonymous » » в форуме Python
    0 Ответы
    7 Просмотры
    Последнее сообщение Anonymous
  • Sphinx.ext.autodoc: ModuleNotFoundError для внешних пакетов
    Anonymous » » в форуме Python
    0 Ответы
    7 Просмотры
    Последнее сообщение Anonymous
  • Sphinx.ext.autodoc: ModuleNotFoundError для внешних пакетов
    Anonymous » » в форуме Python
    0 Ответы
    17 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Python»