自动摘要:如何控制在生成的文档中使用哪些方法?

2024-06-11 14:55:32 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用sphinx生成文档,autosummary扩展负责为所有不是由我显式编写的类生成小存根

以类Foo为例,假设它有一个mixin Base,它添加了更多用于存储的方法非常基本的方法。它们不是私有的,因为它们可能有用,但只对1%的用户有用。mixin也存在于我使用的所有类中。主要的一点是,mixin是必需的,但在所有类中对其进行文档化只会使文档变得混乱,我只想提到的是,它在类描述中使用了基本mixin,但隐藏了实际的方法和属性

使用autodoc我可以使用自定义autodoc-skip-member删除对这些函数的文档记录。这可以工作,但只影响每个方法的扩展文档,而不影响开始时继承方法的列表

现在autosummary将把所有这些放在存根中,并且不使用任何autodoc设置。我黑了autosummary代码来真正做我想做的事情,但这真的不优雅

我的问题是:

  1. 是否有其他方法生成这些文件
  2. 这些文件是要在每次构建文档时生成的,还是更像是一次生成存根并手动编辑到您喜欢的方法。这是有道理的,尽管我更希望这是自动化的
  3. 能以一种更可重用的方式调整autosummary来做我想做的事情吗
  4. 从程序员的角度来看:隐藏继承的(即使几乎从未使用过)函数是否是一种好的做法

生成的内容如下所示

foo.Foo
=======

.. currentmodule:: foo

.. autoclass:: foo

   .. automethod:: __init__

   .. rubric:: Methods

   .. autosummary::

      ~Foo.method1
      ~Foo.method2
      ~Foo.inherited_method_from_Base1  # remove
      ~Foo.inherited_method_from_Base2  # remove

   .. rubric:: Attributes

   .. autosummary::

      ~Foo.attribute1
      ~Foo.attribute2
      ~Foo.inherited_attribute_from_Base1  # remove
      ~Foo.inherited_attribute_from_Base2  # remove

Tags: 文件方法函数from文档foomixin事情