Изменить имя модуля в автодокументе Python Sphinx

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


person Matt Dodge    schedule 14.05.2019    source источник
comment
У вас есть файл mylib/__init__.py, куда вы импортируете функцию? Возможно, эти вопросы помогут: stackoverflow.com/q/15115514/407651, stackoverflow.com/q/22096187/407651   -  person mzjn    schedule 15.05.2019
comment
@mzjn К сожалению, нет. Или, скорее, функция, которая связана в __init__.py, указывает на другую функцию def/docstring. Это несколько странная установка, но я не думаю, что метод __init__.py сработает. Я пытался установить __module__ в разных местах, надеясь, что это сработает, но не смог этого сделать.   -  person Matt Dodge    schedule 15.05.2019
comment
Я думаю, вам нужно предоставить минимально воспроизводимый пример, который объясняет вашу причудливую настройку.   -  person mzjn    schedule 17.05.2019