私人会员的 python-sphinx 自动摘要

问题描述 投票:0回答:1

我正在尝试使用 python sphinx sphinx.ext.autosummary 扩展,但有一个问题,它不会在生成的表中为私有成员创建条目。我的意思通常是对于名称以下划线开头的模块、函数等。

我知道我可以将私人成员标记为非私人,但我不想这样做。

我也尝试过自动文档选项

autodoc_default_options
,但设置
'private-members': True
没有帮助。我可以更改自动摘要模块模板并在其中插入类似的内容:

.. automodule:: {{ fullname }}
   :members:
   :undoc-members:
   :private-members:

之后它包含私有成员文档,但生成的汇总表仅包含公共成员。

autosummary
指令不接受
:private-members:
选项。

如何强制它为私有模块和其他成员创建摘要?

python python-sphinx
1个回答
0
投票

我处于类似的情况,我需要记录特定模块的私有子模块。我找不到自动执行此操作的方法,但至少有一种(笨拙!)使用

sphinx.ext.autosummary
:

手动将一些私有成员添加到自动生成的 API 参考的方法

基于

custom-module-template.rst
取自另一篇文章我修改了模块块:

{%- block modules %}
{%- if modules or name == 'my_module_containing_only_private_submodules' %}
.. rubric:: Modules

.. autosummary::
   :nosignatures:
   :toctree:
   :template: custom-module-template.rst
   :recursive:
{% for item in modules %}
   {{ item }}
{%- endfor %}
{%- if name == 'my_module_containing_only_private_submodules' %}
   _private_submodule_a
   _private_submodule_b
{% endif %}
{% endif %}
{%- endblock %}

通过这种方式,我成功地将

_private_submodule_a
_private_submodule_a
潜入自动摘要的自动生成模块块中。请参阅此功能请求了解更多背景信息。

我意识到这并不能完全回答问题,但这可能是一个起点。

© www.soinside.com 2019 - 2024. All rights reserved.