繁体   English   中英

Sphinx类属性文档

[英]Sphinx class attribute documentation

我一直在尝试记录基于MongoEngine的应用程序,但是我在Document类上记录属性时遇到了问题。

我采用了正确的语法,如下所示:

class Asset(Document):
     #: This is the URI of the document
     uri = StringField()

我已经尝试过各种记录这些属性的方法,我发现这些属性甚至添加了一个不是MongoEngine字段的属性,只是为了确保这不是问题所在:

class Asset(Document):
    """
    The representation of a file uploaded into the data store.
    """

    #: This is a test attribute.
    foo = 'bar'
    """baz?"""

    #: This is a URI.
    uri = StringField(required=True)
    """This is a URI """

我已在相应的.rst文件中尝试了各种指令组合。 目前它看起来像这样:

.. currentmodule:: mymodule.asset
.. autoclass:: Asset
.. autoattribute:: Asset.foo
.. autoattribute:: Asset.uri

输出不是很令人满意: foo属性根本没有显示文档,uri字段有MongoEngine的“一个unicode字符串字段”。 StringField类的文档)作为文档。 此外,属性文档不会放在类的“下”(与automodule +:members: - 一起输出所有带有MongoEngine描述的字段)

我想念狮身人面像扩展吗? 或者我搞砸了语法?

要将类的成员放入文档中,请使用:members:选项:

.. autoclass:: Asset
   :members:

如果没有:members: , 插入类docstring

另请参见autodoc_default_flags配置选项。


您可以使用autoattribute获得与上面相同的结果,并且不使用:members:注意缩进):

.. autoclass:: Asset

   .. autoattribute:: foo
   .. autoattribute:: uri

我无法重现使用StringField的docstring记录uri属性的问题。

我正在使用Sphinx 1.2.2。

事实证明这个问题是由于mzjn的回答而引起的:我必须完全限定类我是..autoclass:: ing因为我为..currentmodule::指定的模块导入使用了from x import y语法,即以下语法有效:

.. currentmodule: mymodule.asset
.. autoclass: mymodule.asset.Asset
   :members:

长话短说: 检查你的进口!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM