gpt4 book ai didi

python - 如何避免继承成员使用自动摘要和自定义模板?

转载 作者:太空宇宙 更新时间:2023-11-03 11:43:51 26 4
gpt4 key购买 nike

我使用 sphinx.ext.autosummary 生成一个 python 文档。 autodocautosummary 在 conf.py 中配置如下:

autodoc_member_order = 'bysource'
## Default flags used by autodoc directives
autodoc_default_flags = ['members','undoc-members']
## Generate autodoc stubs with summaries from code
autosummary_generate = True

我使用模板:

myModuleName
=======

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

myModule

模块模板是:

{{ 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 %}

类模板是:

{{ 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 %}

它工作正常,但是这会添加文档中继承的每个方法,而标志“show-inheritance”(应该添加每个继承的成员)不存在。

有什么想法吗?

最佳答案

似乎确实没有任何标志(例如 :no-inherited-members:)对此有任何影响,但您可以修改您的类模板来解决问题。

{% for item in methods %}
{%- if item not in inherited_members %}
~{{ name }}.{{ item }}
{%- endif %}
{%- endfor %}

以上似乎对我有用。希望对你有帮助...

关于python - 如何避免继承成员使用自动摘要和自定义模板?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43983799/

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