我正在寻找使用autofunction
在Python模块中自动编写某些函数的功能。例如,假设函数在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
时,它并不指向实际函数docstring是。
我可以像这样获得自动文档的功能:
..currentmodule:: mylib.funcs.a
..autofunction:: myfunc
但是,生成的文档具有类似于mylib.funcs.a.myfunc
的签名。我希望它只是mylib.myfunc
。
如果我不使用autodoc,可以在我的狮身人面像文档中执行以下操作:
.. function:: myfunc(arg)
:module: mylib
所以我想我的问题是:在函数上使用autodoc时,是否可以“别名”或更改模块的标签?我查看了用于处理文档字符串和签名的预处理事件,但是这些似乎不允许您更改模块的显示方式。