2012-07-28 5 views
5

Ich bin Code in Sphinx dokumentieren, dass dies ähnelt:Haben replace Sphinx Text Docstring

class ParentClass(object): 

    def __init__(self): 
     pass 

    def generic_fun(self): 
     """Call this function using /run/ParentClass/generic_fun()""" 
     do_stuff() 

class ChildClass(ParentClass): 

    def specific_fun(self): 
     """Call this function using /run/ChildClass/specific_fun()""" 
     do_other_stuff() 

Ich habe die :inherited-members zum ChildClass Dokumentation, so habe ich Aussagen dort wie „Rufen Sie diese Funktion mit/run/Parent/generic_fun() ".

Gibt es einen Weg, wie ich etwas in die Docstrings setzen kann, dass die Sphinx durch die eigentliche Klasse ersetzt wird, die es dokumentiert?

Ich mag würde den Code aussehen wie Klasse Parent haben (Objekt):

def __init__(self): 
     pass 

    def generic_fun(self): 
     """Call this function using /run/<class_name>/generic_fun()""" 
     do_stuff() 

So in der Child Abschnitt der Dokumentation Sphinx lesen würde ... mit/run/Child/generic_fun() ... und der ParentClass-Abschnitt würde lesen ... mit/run/ParentClass/generic_fun() ...?

Idealerweise hätte ich gerne die Dokumentation auf der gleichen Seite, so dass die Ersetzungszeichenfolge für verschiedene Abschnitte unterschiedlich wäre.

Antwort

7

Ich habe einen Weg gefunden, dies zu tun, während ich etwas anderes ansehe.

Es gibt Funktionen, die autodoc vor dem Drucken der Nachricht aufrufen wird. Ich fügte diesen Code meiner conf.py Datei hinzu:

Ich möchte das | verwenden Token, aber sie sind für globale Ersetzungen reserviert. Ich bin darum herumgekommen, indem ich die folgende Zeile in meine erste Datei geschrieben habe (also ersetzt der Code | class | für | class |):

+0

Wo ist 'get_class_name' definiert? – mzjn

+0

Hinzugefügt in. Gleiche Datei, es wurde nur von diesem Codeblock getrennt. –

Verwandte Themen