gpt4 book ai didi

python - 自动文档 : base classes are shown with full name instead of respecting the import

转载 作者:太空宇宙 更新时间:2023-11-03 14:21:40 24 4
gpt4 key购买 nike

我希望我能在这里找到解决这个相当复杂的问题的方法。

我使用 sphinx 和 intersphinx 来记录我的项目。

我有一个继承自 mongoengine.Document 的类。

当我使用 sphinx-apidoc 和 sphinx-build(通过 sphinx-quickstart 自动生成的 Makefile)构建 sphinx 文档时,对 mongoengine.Document 类的引用显示为 mongoengine.document.Document,这实际上是正确的完全限定名称,但这是一个问题,因为在 mongoengine 项目中,该类被标记为 mongoengine.Document,因此 intersphinx 根本不链接。

有没有办法告诉 sphinx 在导入基类时生成有关基类的信息(在我的代码中,我有 from mongoengine import Document)而不是其完整模块路径?

以下代码:

from mongoengine import Document, EmbeddedDocumentListField

class MyDocument(Document):
""" my docstring """

它会生成一些 html,例如:

class myproj.models.MyDocument(*args, **values) Bases:
mongoengine.document.Document <-- intersphinx does not find the link to external doc!

而不是

class myproj.models.MyDocument(*args, **values)
Bases: mongoengine.Document <-- here intersphinx will properly link

最佳答案

__module__ 属性保存定义该类的模块的名称。 Document.__module__ 的值为“mongoengine.document”。

该属性是可写的,因此解决方法是将以下行添加到代码中:

Document.__module__ = "mongoengine"

关于python - 自动文档 : base classes are shown with full name instead of respecting the import,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47903710/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com