【问题标题】:sphinx documentation exclude a baseclass from :inherited-members:sphinx 文档从 :inherited-members 中排除了一个基类:
【发布时间】:2020-05-08 07:39:29
【问题描述】:

我正在使用 Sphinx 记录一些具有多层继承的 Python 代码。结构大致是:

class _foo(np.ndarray):
    #do _foo stuff

class bar(_foo):
    #do bar stuff

class baz(_foo):
    #do baz stuff

使用 :inherited-members: 在我的 .rst 文件中,我从 _foo 获取文档作为 barbaz 的一部分,但我也从 np.ndarray 获取所有文档,我不想要.

Sphinx 文档 (https://www.sphinx-doc.org/en/master/usage/extensions/autodoc.html) 说:

例如;如果您的类 Foo 是从列表类派生的,并且您不想记录 list.__len__(),您应该指定一个选项 :inherited-members: list 以避免列表类的特殊成员。

但我试过了:

  • :继承成员:np.ndarray
  • :inherited-members: ndarray
  • :inherited-members: numpy.ndarray

这些都不会阻止每个类都包含整个 numpy.ndarray 文档。有谁知道是否有办法排除 numpy 文档,但保留我需要的部分?谢谢。

【问题讨论】:

  • 请注意,此功能是 Sphinx 3.0 中的新功能,因此...您需要 Sphinx 3.0 才能按超类过滤 :inherited-members:。还提供一个有效的复制案例,因为我什至无法让 sphinx 3 在本地项目中将np.ndarray 的文档添加到bar

标签: python python-sphinx


【解决方案1】:

正如@Masklinn 在 cmets 中解释的那样,需要 3.0 或更高版本,然后它可以正常工作:

:inherited-members: ndarray

【讨论】:

    猜你喜欢
    • 2022-01-17
    • 1970-01-01
    • 2010-11-28
    • 2017-12-20
    • 1970-01-01
    • 2012-04-30
    • 1970-01-01
    • 2020-10-18
    • 1970-01-01
    相关资源
    最近更新 更多