Sphinx类属性文档

2022-04-21 00:00:00 python python-sphinx

问题描述

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

我采用的正确语法如下:

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的";A Unicode字符串字段。";(StringField类的文档)作为文档。此外,属性文档也没有放在类的下面(与Automodule+:Members:-一样,它输出所有字段及其MongoEngine描述)

我是否错过了Sphinx扩展?还是我搞砸了语法?


解决方案

事实证明,除了mzjn的答案外,这个问题还是由其他原因引起的:我必须完全限定我正在使用的..autoclass::类才能运行,因为我为..currentmodule::指定的导入模块使用了from x import y语法,即以下语法有效:

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

长话短说:检查您的进口产品!

相关文章