pyclbr — Unterstützung für Python-Modulbrowser¶
Quellcode: Lib/pyclbr.py
Das Modul pyclbr liefert begrenzte Informationen über die Funktionen, Klassen und Methoden, die in einem in Python geschriebenen Modul definiert sind. Die Informationen genügen, um einen Modulbrowser umzusetzen. Sie werden aus dem Python-Quellcode gewonnen und nicht durch Importieren des Moduls, deshalb lässt sich dieses Modul gefahrlos mit nicht vertrauenswürdigem Code verwenden. Diese Einschränkung macht es unmöglich, dieses Modul mit Modulen zu verwenden, die nicht in Python umgesetzt sind, also auch mit allen standardmäßigen und wahlfreien Erweiterungsmodulen.
- pyclbr.readmodule(module, path=None)¶
Gibt ein Dictionary zurück, das Klassennamen auf Modulebene auf Klassendeskriptoren abbildet. Wo möglich, sind Deskriptoren für importierte Basisklassen enthalten. Der Parameter module ist eine Zeichenkette mit dem Namen des zu lesenden Moduls, der auch der Name eines Moduls innerhalb eines Pakets sein darf. Ist path angegeben, ist es eine Folge von Verzeichnispfaden, die
sys.pathvorangestellt wird und über die der Quellcode des Moduls gefunden wird.Diese Funktion ist die ursprüngliche Schnittstelle und wird nur zur Abwärtskompatibilität beibehalten. Sie gibt eine gefilterte Fassung der folgenden zurück.
- pyclbr.readmodule_ex(module, path=None)¶
Gibt einen auf Dictionarys beruhenden Baum zurück, der für jede Funktion und jede Klasse, die im Modul mit einer
def- oderclass-Anweisung definiert ist, einen Funktions- oder Klassendeskriptor enthält. Das zurückgegebene Dictionary bildet Funktions- und Klassennamen auf Modulebene auf ihre Deskriptoren ab. Verschachtelte Objekte werden in daschildren-Dictionary ihres Elternobjekts eingetragen. Wie bei readmodule benennt module das zu lesende Modul, und path wird sys.path vorangestellt. Ist das gelesene Modul ein Paket, hat das zurückgegebene Dictionary einen Schlüssel'__path__', dessen Wert eine Liste mit dem Suchpfad des Pakets ist.
Added in version 3.7: Deskriptoren für verschachtelte Definitionen. Auf sie wird über das neue Attribut children zugegriffen. Jeder hat ein neues Attribut parent.
Die Deskriptoren, die diese Funktionen zurückgeben, sind Instanzen der Klassen Function und Class. Es ist nicht vorgesehen, dass Nutzer Instanzen dieser Klassen erzeugen.
Function-Objekte¶
- class pyclbr.Function¶
Instanzen der Klasse
Functionbeschreiben Funktionen, die durch def-Anweisungen definiert sind. Sie haben die folgenden Attribute:- file¶
Name der Datei, in der die Funktion definiert ist.
- module¶
Der Name des Moduls, das die beschriebene Funktion definiert.
- name¶
Der Name der Funktion.
- lineno¶
Die Zeilennummer in der Datei, an der die Definition beginnt.
- parent¶
Bei Funktionen der obersten Ebene
None. Bei verschachtelten Funktionen das Elternobjekt.Added in version 3.7.
- children¶
Ein
Dictionary, das Namen auf Deskriptoren für verschachtelte Funktionen und Klassen abbildet.Added in version 3.7.
Klassenobjekte¶
- class pyclbr.Class¶
Instanzen der Klasse
Classbeschreiben Klassen, die durch class-Anweisungen definiert sind. Sie haben dieselben Attribute wieFunctionsund zwei weitere.- file¶
Name der Datei, in der die Klasse definiert ist.
- module¶
Der Name des Moduls, das die beschriebene Klasse definiert.
- name¶
Der Name der Klasse.
- lineno¶
Die Zeilennummer in der Datei, an der die Definition beginnt.
- parent¶
Bei Klassen der obersten Ebene
None. Bei verschachtelten Klassen das Elternobjekt.Added in version 3.7.
- children¶
Ein Dictionary, das Namen auf Deskriptoren für verschachtelte Funktionen und Klassen abbildet.
Added in version 3.7.
- super¶
Eine Liste von
Class-Objekten, die die unmittelbaren Basisklassen der beschriebenen Klasse beschreiben. Klassen, die als Oberklassen benannt sind, diereadmodule_ex()aber nicht finden kann, werden als Zeichenkette mit dem Klassennamen aufgeführt und nicht alsClass-Objekte.
- methods¶
Ein
Dictionary, das Methodennamen auf Zeilennummern abbildet. Das lässt sich aus dem neuerenchildren-Dictionary ableiten, bleibt aber zur Abwärtskompatibilität erhalten.