pyclbr — Python-Modulbrowser-Unterstützung¶
Quellcode: Lib/pyclbr.py
Das Modul pyclbr liefert eingeschränkte Informationen über die in einem Python-Code-Modul definierten Funktionen, Klassen und Methoden. Die Informationen sind ausreichend, um einen Modulbrowser zu implementieren. Die Informationen werden aus dem Python-Quellcode extrahiert und nicht durch Importieren des Moduls, daher ist dieses Modul sicher für die Verwendung mit nicht vertrauenswürdigem Code. Diese Einschränkung macht es unmöglich, dieses Modul mit Modulen zu verwenden, die nicht in Python implementiert sind, einschließlich aller Standard- und optionalen Erweiterungsmodule.
- pyclbr.readmodule(module, path=None)¶
Gibt ein Wörterbuch zurück, das Modul-Level-Klassennamen auf Klassen-Deskriptoren abbildet. Wenn möglich, sind Deskriptoren für importierte Basisklassen enthalten. Der Parameter module ist ein String mit dem Namen des zu lesenden Moduls; es kann der Name eines Moduls innerhalb eines Pakets sein. Wenn angegeben, ist path eine Sequenz von Verzeichnispfaden, die `sys.path` vorangestellt werden, welches zur Lokalisierung des Modulquellcodes verwendet wird.
Diese Funktion ist die ursprüngliche Schnittstelle und wird nur aus Gründen der Abwärtskompatibilität beibehalten. Sie gibt eine gefilterte Version des Folgenden zurück.
- pyclbr.readmodule_ex(module, path=None)¶
Gibt einen dictionary-basierten Baum zurück, der Funktions- oder Klassendeskriptoren für jede Funktion und Klasse enthält, die im Modul mit einer `def`- oder `class`-Anweisung definiert ist. Das zurückgegebene Wörterbuch ordnet Modul-Level-Funktions- und Klassennamen ihren Deskriptoren zu. Verschachtelte Objekte werden im `children`-Wörterbuch ihres Elternteils eingetragen. Wie bei `readmodule` benennt module das zu lesende Modul und path wird `sys.path` vorangestellt. Wenn das zu lesende Modul ein Paket ist, hat das zurückgegebene Wörterbuch einen Schlüssel `'__path__'`, dessen Wert eine Liste ist, die den Suchpfad des Pakets enthält.
Hinzugefügt in Version 3.7: Deskriptoren für verschachtelte Definitionen. Sie werden über das neue Attribut `children` abgerufen. Jeder hat ein neues Attribut `parent`.
Die von diesen Funktionen zurückgegebenen Deskriptoren sind Instanzen der Klassen `Function` und `Class`. Es wird nicht erwartet, dass Benutzer Instanzen dieser Klassen erstellen.
Funktionsobjekte¶
- class pyclbr.Function¶
Instanzen der Klasse `Function` beschreiben 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¶
Für Top-Level-Funktionen `None`. Für verschachtelte Funktionen das Elternobjekt.
Hinzugefügt in Version 3.7.
- children¶
Ein
Wörterbuch, das Namen auf Deskriptoren für verschachtelte Funktionen und Klassen abbildet.Hinzugefügt in Version 3.7.
- is_async¶
`True` für Funktionen, die mit dem Präfix `async` definiert sind, andernfalls `False`.
Hinzugefügt in Version 3.10.
Klassenobjekte¶
- class pyclbr.Class¶
Instanzen der Klasse `Class` beschreiben Klassen, die durch `class`-Anweisungen definiert sind. Sie haben dieselben Attribute wie
Functionsund 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¶
Für Top-Level-Klassen `None`. Für verschachtelte Klassen das Elternobjekt.
Hinzugefügt in Version 3.7.
- children¶
Ein Wörterbuch, das Namen auf Deskriptoren für verschachtelte Funktionen und Klassen abbildet.
Hinzugefügt in Version 3.7.
- super¶
Eine Liste von `Class`-Objekten, die die unmittelbaren Basisklassen der beschriebenen Klasse beschreiben. Klassen, die als Oberklassen benannt sind, aber von `readmodule_ex()` nicht entdeckt werden können, werden als String mit dem Klassennamen anstelle von `Class`-Objekten aufgeführt.
- methods¶
Ein
Wörterbuch, das Methodennamen auf Zeilennummern abbildet. Dies kann aus dem neueren `children`-Wörterbuch abgeleitet werden, bleibt aber aus Gründen der Abwärtskompatibilität erhalten.