gpt4 book ai didi

python - Python autodoc 元组/列表格式可以更改吗?

转载 作者:太空狗 更新时间:2023-10-30 01:24:48 25 4
gpt4 key购买 nike

我在要记录的项目中有一些 Python 代码,但是我在记录元组或列表类常量时遇到了问题。请参见下面的代码和图片。当每行上有多个项目并且行随机拆分时,很难阅读文档。

元组可以用另一种方式格式化吗?喜欢新行中的每个元素。我仍然想使用 autodoc(在整个文件上),所以手动添加类是 Not Acceptable 。我可以更改代码、conf.py 或自动模块选项。

首先:

.. automodule:: my_python_file
:members:
:undoc-members:

my_python_file.py:

class SOMinimalExample:
"""SO example with ugly formatted tuple"""
MY_CONSTANT = (
('AnElement', (1, 2, 3, 5)),
('AnotherElement', (3, 5)),
('MoreElements', (1, 5)),
('MoreElements', (1, 5, 5)),
('MoreElements', (213, )),
('MoreElements', (5, 1, 5)),
('MoreElements', (1, 8, 5)),
('MoreElements', (1, 0, 0, 0, 5)),
('MoreElements', (1, 123, 4324, 46, 845)),
)

输出:

rendered output

HTML:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="X-UA-Compatible" content="IE=Edge" />
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>SO documentation</title>
<link rel="stylesheet" href="_static/alabaster.css" type="text/css" />
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
<script type="text/javascript" id="documentation_options" data-url_root="./" src="_static/documentation_options.js"></script>
<script type="text/javascript" src="_static/jquery.js"></script>
<script type="text/javascript" src="_static/underscore.js"></script>
<script type="text/javascript" src="_static/doctools.js"></script>
<script type="text/javascript" src="_static/language_data.js"></script>
<link rel="index" title="Index" href="genindex.html" />
<link rel="search" title="Search" href="search.html" />

<link rel="stylesheet" href="_static/custom.css" type="text/css" />


<meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9" />

</head><body>


<div class="document">
<div class="documentwrapper">
<div class="bodywrapper">


<div class="body" role="main">

<div class="section" id="welcome-to-so-s-documentation">
<h1>Welcome to SO’s documentation!<a class="headerlink" href="#welcome-to-so-s-documentation" title="Permalink to this headline">¶</a></h1>
<div class="toctree-wrapper compound">
<span id="document-modules"></span><div class="section" id="so">
<h2>so<a class="headerlink" href="#so" title="Permalink to this headline">¶</a></h2>
<div class="toctree-wrapper compound">
<span id="document-my_python_file"></span><div class="section" id="module-my_python_file">
<span id="my-python-file-module"></span><h3>my_python_file module<a class="headerlink" href="#module-my_python_file" title="Permalink to this headline">¶</a></h3>
<dl class="class">
<dt id="my_python_file.SOMinimalExample">
<em class="property">class </em><code class="descclassname">my_python_file.</code><code class="descname">SOMinimalExample</code><a class="headerlink" href="#my_python_file.SOMinimalExample" title="Permalink to this definition">¶</a></dt>
<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">object</span></code></p>
<p>SO example with ugly formatted tuple</p>
<dl class="attribute">
<dt id="my_python_file.SOMinimalExample.MY_CONSTANT">
<code class="descname">MY_CONSTANT</code><em class="property"> = (('AnElement', (1, 2, 3, 5)), ('AnotherElement', (3, 5)), ('MoreElements', (1, 5)), ('MoreElements', (1, 5, 5)), ('MoreElements', (213,)), ('MoreElements', (5, 1, 5)), ('MoreElements', (1, 8, 5)), ('MoreElements', (1, 0, 0, 0, 5)), ('MoreElements', (1, 123, 4324, 46, 845)))</em><a class="headerlink" href="#my_python_file.SOMinimalExample.MY_CONSTANT" title="Permalink to this definition">¶</a></dt>
<dd></dd></dl>

</dd></dl>

</div>
</div>
</div>
</div>
</div>

</div>
</div>
</div>
<div class="sphinxsidebar" role="navigation" aria-label="main navigation">
<div class="sphinxsidebarwrapper">
<h1 class="logo"><a href="index.html#document-index">SO</a></h1>


<h3>Navigation</h3>
<p class="caption"><span class="caption-text">Contents:</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="index.html#document-modules">so</a></li>
</ul>

<div class="relations">
<h3>Related Topics</h3>
<ul>
<li><a href="index.html#document-index">Documentation overview</a><ul>
</ul></li>
</ul>
</div>

</div>
</div>
<div class="clearer"></div>
</div>
<div class="footer">
&copy;2019, me.

|
Powered by <a href="http://sphinx-doc.org/">Sphinx 1.8.4</a>
&amp; <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.12</a>

</div>
</body>
</html>

最佳答案

一个选项是使用 autoclass 并通过嵌套 literalinclude指令。

.. autoclass:: my_python_file.SOMinimalExample
:members:

.. attribute:: MY_CONSTANT

Some doc text for MY_CONSTANT.

.. literalinclude:: ../src/my_python_file.py
:dedent: 4
:lines: 3-13

输出:

Sphinx output


我希望以下内容会起作用(而不是使用行号):

.. literalinclude:: ../src/my_python_file.py
:pyobject: SOMinimalExample.MY_CONSTANT

但它不起作用。 Sphinx 发出警告:“在包含文件中找不到名为‘SOMinimalExample.MY_CONSTANT’的对象”。

关于python - Python autodoc 元组/列表格式可以更改吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54823758/

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