私はPythonモジュール(SphinxとreSTを使用)のドキュメントを作成しています。他のPythonオブジェクト(モジュール、クラス、関数など)を相互参照するときに、名前は信じられないほど長く終わる。しばしばそれは80文字よりも長くなりますが、私はそれをどうしても避けたいと思います。ここで長い名前を参照するPython Sphinx
は一例です:
def exampleFunction():
'''Here is an example docstring referencing another
:class:`module1.module2.module3.module4.module5.ReallyLongExampleClassName`
'''
問題がReallyLongExampleClassNameクラスのドキュメントを作成するときに、私は完全なパス名module1.module2.module3.module4.module5.ReallyLongExampleClassaNameのためにそれを生成していることです。
これを解決する方法があるのでしょうか?私は成功しなかった以下の方法を試しました:
1)モジュール名の途中に改行を追加する。例:
:class:`module1.module2.module3.module4.
module5.ReallyLongExampleClassName`
2)別の(でもPythonのインポート可能な)方法でクラス名を参照してください。例:
:class:`module1.module2.ReallyLongClassName`
私は以来、ReallyLongClassNameのドキュメントはスフィンクスが完全に名前のバージョンで短縮バージョンを関連付けることができない完全なパス名に結びついていると考えています。
ご協力いただきますようお願い申し上げます。
編集2012年4月5日:
:class:`module1.module2.module3.module4.module5\
ReallyLongExampleClassName`
そして、これが正常に働いていた:
j13rの答え/提案を1として(下記参照)私は、次のことを試してみました。これを動作させるための唯一の注意点は、2行目にスペースを入れてはいけないということです(ドキュメントストリングでこれを使用するとかなり不快です)。したがって、私の元の例を動作させると、次のようになります。
def exampleFunction():
'''Here is an example docstring referencing another
:class:`module1.module2.module3.module4.module5.\
ReallyLongExampleClassName`
'''
ニース、そして醜いです。 "ReallyLongExampleClassName"の前に空白を置いて、上の行と同じレベルにインデントする場合は、出力にスペースが含まれるため、Sphinxは "module1.module2.module3.module4.module5。ReallyLongExampleClassName"のようなものを参照しようとします。 "
私も、私は動作しませんでした。この二つの他のバリエーション、試したことに注意してください:私はドキュメンテーション文字列の書式設定を破壊伴わない解決策を探していました
# Note: Trying to put a space before the '\'
:class:`module1.module2.module3.module4.module5. \
ReallyLongExampleClassName`
# Note: Trying to leave out the '\'
:class:`module1.module2.module3.module4.module5.
ReallyLongExampleClassName`
を、私が思いますそれは...私は実際にこれに80文字を超える行を好むと思う。
答えがj13rのおかげです!
これはまさに私が探していたものです。ありがとう! – furtypajohn