Измените имя модуля в автодоке Python Sphinx - PullRequest
0 голосов
/ 14 мая 2019

Я ищу автодок для некоторых функций в модуле 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 для функции? Я посмотрел на события предварительной обработки для обработки строки документации и подписи, но, похоже, они не позволяют вам изменить способ отображения модуля.

...