__doc__ von allen Modulen in einem Verzeichnis abfragen

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Benutzeravatar
limepix
User
Beiträge: 37
Registriert: Dienstag 11. November 2008, 16:54

Wie kann man denn möglichst einfach und elegant auf die doc strings aller Module in einem Paket zugreifen?

Kleines Beispiel:
Ich habe ein Verzeichnis "test" innerhalb von site-packages in dem zwei Module liegen. In diesem Verzeichnis liegen nun Dateien, z.B "testa.py", "testb.py", "testc.py", ...
Ich möchte nun in einem Rutsch über alle Module in diesem Verzeichnis drüberlaufen und mir dann quasi testa.__doc__, testb.__doc__, testc.__doc__, ... ausgeben lassen.
Brauchen tu ich das für ein Verzeichnis in dem eine Art "Skriptsammlung" liegt. Jedes der Skripte hat solche Doc Strings, allerdings gibt es nirgends eine Zusammenfassung. Das händisch aus jedem Skript rauszukopieren würde mich mehrere Stunden kosten.
Ich dachte da an die Verwendung von __import__, wenn man vorher über os.walk() alle Module aufgelistet hat. Geht das nicht auch noch schicker??

Bin auf eure Antworten/Vorschläge schon gespannt.

Beste Grüße

limepix
Benutzeravatar
limepix
User
Beiträge: 37
Registriert: Dienstag 11. November 2008, 16:54

meine aktuelle lösung sieht so aus:

Code: Alles auswählen

import os
import sys
import dh.project.monitoringClient.mod

MODULEPATH = dh.project.monitoringClient.mod.__path__[0]
PACKAGE = dh.project.monitoringClient.mod.__name__

for mod in [x[:-3] for x in [f for r, d, f in os.walk(MODULEPATH)][0] \
                if x.endswith('.py')]:    
    __import__(PACKAGE + '.' + mod)
    print sys.modules[PACKAGE + '.' + mod].__doc__
hm...
Antworten