在Sphinx文档中显示字典数据

问题描述 投票:10回答:2

我在Python项目源代码中有一个字典,它描述了默认的配置值。字典很冗长。除了“查看源代码”之外,我还希望以其他格式查看Sphinx文档中的字典,以便人们可以快速检查默认值。

当与Sphinx autodoc一起使用时,Sphinx是否提供格式化字典变量的选项以用于人类可读的格式?我目前正在使用.. automodule::转储整个模块,我将字典作为文档中的一个长字符串转储(没有新行,漂亮的打印,任何东西),基本上是不可读的。

  • Sphinx是否提供了打印单个源代码变量值的工具
  • 有没有漂亮的印刷品?
python python-sphinx
2个回答
7
投票

这可能不是最优雅的解决方案(编写适当的指令来输出漂亮的打印字典会好得多),但现在这样做:

here给定的自定义exec指令添加到Sphinx .conf文件中,然后在.rst文件中打印字典,执行以下操作:

.. exec::
    import json
    from some_module import some_dictionary
    json_obj = json.dumps(some_dictionary, sort_keys=True, indent=4)
    print '.. code-block:: JavaScript\n\n    %s\n\n' % json_obj

这将在您的文档中的JavaScript代码块中打印出您的字典(我发现这是在文档中呈现字典的最佳方式)。


5
投票

如果不计算字典值并且人类可读如此

FRUITS = {
   "Apple": "Red and Delicious",
   # note: eating too much orange make your hands orange
   "Orange": "A lot of vitamin C"
}

假设你从第15行开始在fruit.py中定义了上面的dict

然后你可以这样做:

.. literalinclude:: ../path-to-file/fruit.py
   :language: python
   :lines: 15-
   :linenos:

并且您将在doc上获得人类可读的值+评论等

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