相关疑难解决方法(0)

是否可以为特定功能覆盖Sphinx autodoc?

我正在使用Sphinx的autodoc插件自动记录一组模块.我有一个接受的函数,*args我想覆盖文档以显示funcname(arg1[, arg2[, ...]])Python stdlib文档使用的稍微好一点的样式.

是否可以覆盖特定功能的autodoc输出?

python python-sphinx autodoc

12
推荐指数
1
解决办法
6223
查看次数

sphinx.ext.autodoc:保持签名中的常量名称

我正在使用Sphinx的autodoc功能来记录我的API.

例:

DEFAULT_OPTION = 'default'
def do_something(msg, option=DEFAULT_OPTION):
    print msg
Run Code Online (Sandbox Code Playgroud)

生成的文档现在显示以下签名:

do_something(msg, option='default')
Run Code Online (Sandbox Code Playgroud)

如何告诉Sphinx保留常量值的名称,即

do_something(msg, option=DEFAULT_OPTION)
Run Code Online (Sandbox Code Playgroud)

有没有我忽略的选择?如果可能的话,我不想再用手写所有的签名.

python python-sphinx

6
推荐指数
2
解决办法
2070
查看次数

如何使用autodoc覆盖Sphinx中的构造函数参数?

假设我有这样一个类:

class MyClass(object):
    """ Summary docs for my class.

    Extended documentation for my class.
    """

    def __init__(self, *args):
        self.values = np.asarray(args)
Run Code Online (Sandbox Code Playgroud)

如果我使用带有autodoc扩展名的Sphinx 来记录这个类,如下所示:

.. automodule:: mymodule
   :members:
Run Code Online (Sandbox Code Playgroud)

...构造函数签名显示为MyClass(*args).我宁愿覆盖它并将其记录为,比方说MyClass(first, second, third).

如果这是一个函数,我可以覆盖docstring第一行中的签名.但是这个技巧似乎不适用于类docstring.那么如何覆盖构造函数签名呢?

python python-sphinx

6
推荐指数
1
解决办法
1418
查看次数

缩短 autodoc 中的长类型名称

autodoc在它生成的文档中列出类型时,例如Bases类继承自的类型,或函数参数的类型提示,它会添加类型的模块。例如,接收 Tensorflow Optimizer 的函数将被列为

f(opt: tensorflow.python.training.optimizer.Optimizer = <tensorflow.python.training.adam.AdamOptimizer object>)
Run Code Online (Sandbox Code Playgroud)

这真的很难读而且是多余的。有没有办法抑制在模块名称之前添加?或者另一种控制类型如何列出的方法?

编辑: 这个答案有助于一次修复这个功能。有没有办法为所有功能解决这个问题?

python python-sphinx autodoc

5
推荐指数
0
解决办法
296
查看次数

缩短Sphinx中Python类型注释的显示格式

鉴于模块中的以下函数,mymodule我想使用 Sphinx 进行记录autodoc

\n
from typing import Union\nfrom collections.abc import Iterable\nfrom numpy.typing import ArrayLike\n\ndef foo(a: Union[str, int], b: Iterable, c: ArrayLike) -> None:\n    """Do something useful."""\n    pass\n
Run Code Online (Sandbox Code Playgroud)\n

在源代码中,函数的签名非常可读。但是,在生成的文档中autodoc但是,在签名

\n
\n

khadl._util.foo(a:Union [str,int],b:collections.abc.Iterable,c:Union [int,float,complex,str,字节,numpy.generic,Sequence [Union [int,float,complex] , str, bytes, numpy.generic]], 序列[序列[任意]], numpy.typing._array_like._SupportsArray]) \xe2\x86\x92 无

\n
\n

这是不可读的。源自模块的类typing以简短形式显示(Union, Sequence, Any),但对于抽象基类,Iterable会生成唯一标识符(collections.abc.Iterable),ArrayLike甚至“解包”(Union[int, float, complex, str, bytes, numpy.generic, Sequence[Union[int, float, complex, str, bytes, numpy.generic]], Sequence[Sequence[Any]], …

python type-hinting python-sphinx autodoc

5
推荐指数
1
解决办法
1472
查看次数

标签 统计

python ×5

python-sphinx ×5

autodoc ×3

type-hinting ×1