Можно ли переопределить автодок Sphinx для определенных функций?

Я использую плагин Autodoc Sphinx для автоматического документирования набора модулей. У меня есть функция, которая принимает *args, и я хотел бы переопределить документацию, чтобы показать немного более приятный стиль funcname(arg1[, arg2[, ...]]), который используется в документации Python stdlib.

Можно ли переопределить вывод autodoc для конкретной функции?


person DNS    schedule 19.03.2011    source источник


Ответы (1)


Можно переопределить подпись, используя autofunction:

.. automodule:: yourmodule
   :members:
   :exclude-members: funcname

.. autofunction:: funcname(arg1[, arg2[, ...]])

Однако функция с переопределенной сигнатурой не сортируется с другими функциями, извлеченными с помощью automodule. Использование явных директив autofunction для каждой функции помогает обойти это:

.. autofunction:: firstfunc

.. autofunction:: funcname(arg1[, arg2[, ...]])

.. autofunction:: thirdfunc

Дополнение

Вы также можете добавить к строке документации:

.. autofunction:: funcname(arg1[, arg2[, ...]])

   Extra documentation here.  

Чтобы переопределить и подпись, и строку документации, используйте function вместо autofunction.

Дополнение 2

Подпись также можно переопределить, указав подпись в качестве первой строки строки документации функции. Подробности см. в этом ответе.

person mzjn    schedule 20.03.2011
comment
+1 за дополнение2. Переопределить подпись в строке документа намного проще, чем попытаться исключить участника, а затем повторно добавить его с пользовательской подписью и т. д. - person brianmearns; 10.04.2014