gpt4 book ai didi

python - Sphinx 自动摘要为每个类生成两个摘要

转载 作者:太空宇宙 更新时间:2023-11-03 17:09:44 25 4
gpt4 key购买 nike

我正在使用 Sphinx+autodoc+autosummary 为我的项目生成文档 (mrpy)。

我正在做一个两层摘要,在 index.rst 中我(至少)

mrpy
====

.. autosummary::
:toctree: _autosummary
:template: modules.rst

mrpy.stats
<other modules...>

如您所见,我为模块级自动摘要使用了自定义模板。我这样做是为了在模块级摘要上,我还获得模块内对象的摘要,每个对象都链接到自己的页面。作为引用,我的 modules.rst 文件是

{{ fullname }}
{{ underline }}

.. automodule:: {{ fullname }}

{% block functions %}
{% if functions %}
.. rubric:: Functions

.. autosummary::
:toctree: {{ objname }}
{% for item in functions %}
{{ item }}
{%- endfor %}
{% endif %}
{% endblock %}

{% block classes %}
{% if classes %}
.. rubric:: Classes

.. autosummary::
:toctree: {{ objname }}
:template: class.rst
{% for item in classes %}
{{ item }}
{%- endfor %}
{% endif %}
{% endblock %}

{% block exceptions %}
{% if exceptions %}
.. rubric:: Exceptions

.. autosummary::
{% for item in exceptions %}
{{ item }}
{%- endfor %}
{% endif %}
{% endblock %}

mrpy.stats 仅包含三个类,当点击索引页面上生成的表格中的链接时,它们会得到精美的总结。当点击其中一个类的链接时,我使用另一个自定义模板,class.rst:

{{ fullname }}
{{ underline }}

.. currentmodule:: {{ module }}

.. autoclass:: {{ objname }}

{% block methods %}

{% if methods %}
.. rubric:: Methods

.. autosummary::
:toctree: {{ objname }}
{% for item in methods %}
~{{ name }}.{{ item }}
{%- endfor %}
{% endif %}
{% endblock %}

{% block attributes %}
{% if attributes %}
.. rubric:: Attributes

.. autosummary::
:toctree: {{ objname }}
{% for item in attributes %}
~{{ name }}.{{ item }}
{%- endfor %}
{% endif %}
{% endblock %}

但是,该类的页面包含标题(如预期)、类文档字符串(如预期),以及该类的方法和属性的两个表格摘要。

有人知道如何删除其中一个多余的表吗?

最佳答案

看来答案是 numpydoc 与自动摘要有关。将 numpydoc_show_class_members=False 添加到 conf.py 可以解决该问题。在这里找到解决方案:https://github.com/phn/pytpm/issues/3#issuecomment-12133978

关于python - Sphinx 自动摘要为每个类生成两个摘要,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34216659/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com