私はこの非常に複雑な問題に対して、ここで解決策を見つけることを願っています。autodoc:インポートを尊重するのではなく、フルネームで基本クラスが表示されます
私はプロジェクトを文書化するためにsphinxとintersphinxを使用します。
私はmongoengine.Documentから継承するクラスを持っています。
sphinx-apidocとsphinx-build(sphinx-quickstartで自動生成されたMakefile経由)を使ってsphinxドキュメントを構築すると、mongoengine.Documentクラスへの参照は実際には完全に正しい修飾された名前ですが、これは問題です。mongoengineプロジェクトではクラスがmengoengine.Documentというラベルが付けられているため、intersphinxはまったくリンクしていません。
sphinxにインポートしたときに基底クラスの情報を生成する方法はありますか(私のコードでは、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
トリッキーな問題を。私はそれを解決する方法を知らない。クラスの基底は '__bases__'変数から決定されます。 'MyDocument .__ bases__'は'(、) 'を返します。 –
mzjn
回避方法が見つかりました。あなたのコードに 'Document .__ module__ =" mongoengine "を追加してください。 – mzjn
@mzjn働いてくれてありがとう!私はあなたがそれから答えを出すことができると思う。 – BangTheBank