Sphinx Autosummary:如何控制生成的文档中使用哪些方法?

时间:2016-10-27 13:31:58

标签: python inheritance documentation python-sphinx

我正在使用sphinx生成我的文档,并且autosummary extention负责为我自己没有明确编写的所有类生成小的存根。

取类Foo并假设它有一个mixin Base,它为存储添加了更多基本方法。它们不是私有的,因为它们可能有用,但仅占1%的用户。 mixin也出现在我使用的所有类中。重点是mixin必要但在所有类中记录它只会使文档混乱,我只想提到在类描述中使用Base mixin,但隐藏实际的方法和属性。

使用autodoc我可以使用自定义autodoc-skip-member删除记录这些功能。这有效,但只影响每个方法的扩展文档,而不是开头的继承方法的列表。

现在,autosummary会将所有这些放在存根中,并且不使用任何autodoc设置。我破解了自动编码,实际上做了我想做的事,但这确实不优雅。

我的问题是:

  1. 还有其他方法可以生成这些文件吗?
  2. 这些文件是在每次构建文档时生成的,还是更多生成存根一次并手动编辑到您喜欢的方法。这是有道理的,虽然我宁愿自动化。
  3. 可以通过更加可重复使用的方式调整自动总结以实现我想要的目标吗?
  4. 从程序员的角度来看:隐藏继承(即使几乎从未使用过)的功能是不错的做法?
  5. 生成的内容如下所示

    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
    

0 个答案:

没有答案