Я ищу автодок для некоторых функций в модуле Python, используя autofunction
. Скажем, например, функции определены в mylib/funcs/a.py
, и этот файл выглядит примерно так:
def myfunc(arg):
""" My function does something """
return
Мое намерение состоит в том, чтобы пользователи вызывали эту функцию из корня библиотеки, а не по пути к этому файлу / модулю. Другими словами mylib.myfunc
, а не mylib.funcs.a.myfunc
.
Однако по причинам, выходящим за рамки этого вопроса, к которым я бы предпочел не подходить, когда вы делаете import mylib; mylib.myfunc
или from mylib import myfunc
, это не указывает на фактическую функцию, в которой находится строка документации.
Я могу получить функцию автоматического документирования следующим образом:
..currentmodule:: mylib.funcs.a
..autofunction:: myfunc
Тем не менее, итоговая документация имеет подпись, которая выглядит как mylib.funcs.a.myfunc
. Я хотел бы, чтобы это было просто mylib.myfunc
.
Если бы я не использовал autodoc, я мог бы сделать что-то подобное в моих документах sphinx:
.. function:: myfunc(arg)
:module: mylib
Итак, я предполагаю, что мой вопрос заключается в следующем: есть ли способ «псевдоним» или изменить метку модуля при использовании autodoc для функции? Я посмотрел на события предварительной обработки для обработки строки документации и подписи, но, похоже, они не позволяют вам изменить способ отображения модуля.