Променете името на модул в autodoc на Python Sphinx

Търся автоматично документиране на някои функции в модул на 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 за функция? Разгледах събитията за предварителна обработка за обработка на docstring и подписа, но те изглежда не ви позволяват да промените начина, по който се показва модулът.


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