2011-10-13 9 views
18

Próbuję użyć rozszerzenia sphinx autodoc, a konkretnie dyrektywy automodule do automatycznego generowania dokumentacji dla aplikacji django, nad którą pracuję. Problem polega na tym, że chcę utworzyć wewnętrzne odwołania do różnych klas w ramach modułu, bez konieczności korzystania z funkcji Autoclass i autofunction na każdej klasie/funkcji w ramach projektu. Dla pliku źródłowego jak ten:sf3x automoduł: jak odwoływać się do klas w tym samym module?

# 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 

Chciałbym móc mieć plik dokumentacji sfinks tak:

.. automodule: source_code 

Co odniesienia można użyć do xxxx-jakiegoś-reference-to- A-XXXX? Czy istnieje prosty sposób na osiągnięcie tego? Z góry dziękuje za twoją pomoc.

Odpowiedz

36

Można odwoływać się do klasy tak:

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

Sphinx inteligentnie spróbuj ustalić, do czego się odwołujesz. Jeśli istnieje wiele klas o nazwie A, może pojawić się ostrzeżenie, ale należy je odebrać w bieżącym module.

9

Nie wiem, czy dobrze rozumiem problem, ale to działa bez zarzutu do mnie z AutoDoc, zgodnie 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))) 
Powiązane problemy