Wie dokumentiere ich Klassen ohne den Modulnamen?
Ich versuche ein Python-Paket mit zu dokumentierensphinx
und haben erfolgreich HTML-Dateien generiert. Das Paket, das ich dokumentiere, besteht aus einer Reihe von*.py
Dateien, von denen die meisten eine Klasse mit einigen Dateien enthalten, sind echte Module mit definierten Funktionen. Ich muss nicht die Tatsache offenlegen, dass sich jede Klasse in einem Modul befindet, also habe ich passendes hinzugefügtfrom
Aussagen in der__init__.py
Datei, z.
from base import Base
damit der Benutzer das benutzen kannimport pkg
Befehl und muss dann nicht das Modul angeben, das die Klasse enthält:
import pkg
class MyBase(pkg.Base): # instead of pkg.base.Base ...
...
Das Problem ist, dass Sphinx darauf besteht, die Klasse als zu dokumentierenpkg.base.Base
. Ich habe versucht das einzustellenadd_module_names = False
imconf.py
. Dies führt jedoch dazu, dass Sphinx die Klasse als einfach darstelltBase
anstattpkg.Base
. Zusätzlich ruiniert dies auch die Dokumentation des Ehepaares*.py
Dateien, diesind Module.
Wie mache ichsphinx
zeige eine Klasse alspkg.Base
? Und wie stelle ich das ein?add_module_names
Richtlinie selektiv für jeden*.py
Datei?