我正在尝试使用 python sphinx sphinx.ext.autosummary 扩展,但有一个问题,它不会在生成的表中为私有成员创建条目。我的意思通常是对于名称以下划线开头的模块、函数等。
我知道我可以将私人成员标记为非私人,但我不想这样做。
我也尝试过自动文档选项
autodoc_default_options
,但设置'private-members': True
没有帮助。我可以更改自动摘要模块模板并在其中插入类似的内容:
.. automodule:: {{ fullname }}
:members:
:undoc-members:
:private-members:
之后它包含私有成员文档,但生成的汇总表仅包含公共成员。
autosummary
指令不接受:private-members:
选项。
如何强制它为私有模块和其他成员创建摘要?
我处于类似的情况,我需要记录特定模块的私有子模块。我找不到自动执行此操作的方法,但至少有一种(笨拙!)使用
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
潜入自动摘要的自动生成模块块中。请参阅此功能请求了解更多背景信息。
我意识到这并不能完全回答问题,但这可能是一个起点。