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:
长话短说:检查您的进口产品!
相关文章