2011-10-13 21 views
18

私は、スフィンクスのautodoc拡張機能を使用しようとしています。具体的には、私が取り組んでいるdjangoアプリケーションのドキュメントを自動的に生成するautomoduleディレクティブです。問題は、モジュール内の異なるクラスへの内部参照を、プロジェクト内のすべてのクラス/関数でオートクレーブとオートファンクションを使用せずに作成したいということです。このようなソースファイルの場合:sphinx automodule:同じモジュール内のクラスを参照する方法は?

# source_code.py 
class A: 
    """docs for A 
    """ 
    pass 

class B: 
    """docs for B with 
    :ref:`internal reference to A <XXXX-some-reference-to-A-XXXX>` 
    """ 
    pass 

私はこのようなスフィンクスのドキュメントファイルを持ってできるようにしたいと思います:

.. automodule: source_code 

私はXXXX-いくつかの参照対のために使用することができますどのような参照A-XXXX?これを達成する簡単な方法はありますか?あなたの助けを前にありがとう。

答えて

36

あたりとしてあなたは、このようなクラスを参照することができ、私は問題を理解していれば知っているが、これはautodocのと私には完璧に動作しません:

class B(object): 
    """docs for B with reference to :class:`.A`""" 
    pass 

スフィンクスインテリジェントになりますあなたが参照しているものを試してみてください。 Aという名前のクラスが複数ある場合、警告が表示されることがありますが、現在のモジュールの警告を受け取るはずです。

9

Cross-referencing Python objects

class FlowDirection(GeneralTable): 
    ''' 
    Heat Flow Direction 

    :cvar int id: database primary key 
    :cvar unicode name: name 
    ''' 
    def __repr__(self): 
     return u'<FlowDirection {0} instance at {1}>'.format(
       self.name, hex(id(self))).encode('utf-8') 

    def __unicode__(self): 
     return self.name 

class AirCavityRes(GeneralTable): 
    ''' 
    Air Cavity :term:`thermal resistance` 

    :cvar flow_direction: heat flow direction 
     (see :class:`FlowDirection`) 
    :cvar int id: database primary key 
    :cvar int if_fd: database foreign key to :class:`FlowDirection` 
    :cvar float res: :term:`thermal resistance` 
    :cvar float thick: thickness 
    ''' 
    def __repr__(self): 
     return u'<AirCavityRes {0} instance at {1}>'.format(
       self.res, hex(id(self))) 
関連する問題