Sphinx记录字典内容(模块常量)

时间:2018-02-01 15:03:10

标签: python dictionary constants python-sphinx

这与How to document a module constant in Python?有些相关但不相同。

我在模块中有一个常量(它是一个字典):

possiblestringencodings = dict(
    StringsAsBytes=1,
    ascii=1,
    utf8=1, utf_8=1, U8=1,
    utf16=2, utf_16=2, U16=2, utf_16_be=2, utf_16_le=2,
    utf32=4, utf_32=4, U32=4, utf_32_be=4, utf_32_le=4,
)

readthedocs页面有(see autodata docs):

.. autodata:: construct.possiblestringencodings

但是,这会从dict docstring(它的ctor)生成docstring。如何使用Sphinx记录该词典的内容,只包括其项目?

enter image description here

如果有人想测试补丁,只需将repo分叉并在docs /文件夹中运行“make html”。 https://github.com/construct/construct/blob/1b53d9122a2c652db64c6558d101caee5bbbab3a/construct/core.py#L1280 https://github.com/construct/construct/blob/1b53d9122a2c652db64c6558d101caee5bbbab3a/docs/api/strings.rst

1 个答案:

答案 0 :(得分:2)

字典数据成员没有文档字符串,因此您可以从dict类中获取文档字符串。

在定义之前立即添加一个空的“documentation comment”(或紧跟在后面的文档字符串),并且只会在输出中获取字典项。

#:
possiblestringencodings = dict(
    StringsAsBytes=1,
    ascii=1,
    utf8=1, utf_8=1, U8=1,
    utf16=2, utf_16=2, U16=2, utf_16_be=2, utf_16_le=2,
    utf32=4, utf_32=4, U32=4, utf_32_be=4, utf_32_le=4,
)

您还需要完全限定“核心”模块:

.. autodata:: construct.core.possiblestringencodings