Sphinx 从 autodoc 中删除数据类字段

One*_*Day 5 python docstring python-sphinx autodoc sphinx-napoleon

正如本文所述,即使 napoleon 将字段添加为文档,autodoc 也会急切地将类变量添加到文档中:

from dataclasses import dataclass
@dataclass
class Foo():
    """Some class

    Attributes:
        a: foo
        b: bar
    """
    a: str
    b: int

    def c(self) -> int:
        """Here's a doc'd function
        """
        return 3
Run Code Online (Sandbox Code Playgroud)

我想明确告诉 autodoc 不要记录任何类变量(在数据类的情况下也是实例变量) - 我只希望 autodoc 显示给定类的声明函数并让 napoleon 处理它的所有类的类/实例变量发现. 这是否可以在没有:exclude-members:每堂课的情况下实现(这是一个巨大的麻烦)?

我已经尝试过:

autodoc_default_options = {
    'members':          True,
    'undoc-members':    False,
}
Run Code Online (Sandbox Code Playgroud)

在我的conf.py文件中.rst

.. automodule:: some.module
    :members:
    :show-inheritance:
Run Code Online (Sandbox Code Playgroud)

这应该隐藏无证成员,但他们仍然出现:

在此输入图像描述

Ent*_*ops 0

只需更改Attributes:Args:.