Seite 1 von 1
Suche: Python Code Parser
Verfasst: Dienstag 3. November 2020, 16:43
von MoonKid
Ich suche ein Package das mir den Code mehrer py-files bis auf die ebene der Methode parsed.
Ich stelle mir dann, das Ergebnis in etwa so vor:
Code: Alles auswählen
# get code of a specific method
code = result['filename.py']['ClassName']['function'].code
# methods of a class
result['filename.py']['ClassName'].keys
# classes
result['filename.py'].keys
Re: Suche: Python Code Parser
Verfasst: Dienstag 3. November 2020, 16:51
von Sirius3
Du suchst das ast-Modul?
Re: Suche: Python Code Parser
Verfasst: Dienstag 3. November 2020, 18:29
von __blackjack__
Es gibt auch diverse Module die darauf aufbauen oder es alternativ implementieren. Für verschiedene Anwendungszwecke. Und eventuell reicht das für Dich auch gar nicht, denn parsen des Quelltextes gibt ja nur das was man da halt so statisch heraus findet. Wenn man wissen möchte welche Attribute ein Objekt zur Laufzeit tatsächlich hat, muss man wohl oder übel den Code auch ausführen der die Objekte definiert.
Edit: Es könnte also auch sein, dass Du das `inspect`-Modul suchst.
Re: Suche: Python Code Parser
Verfasst: Dienstag 3. November 2020, 22:43
von MoonKid
Zur Laufzeit muss es nicht sein. Ich möchte nur den Code meiner eigenen Anwendung parsen. Ich habe da ein Observer-Pattern implementiert und kann nur schwer den Überblick behalten, wo Registrierungen beim Observern passieren und wo die Observer notify's abfeuern.
Aus Parser-Perspektive: Ich muss alle Zeilen mit "event_*" finden. Brauche aber auch den Kontext, d.h. in welcher Methode von welcher Klasse und welchem Codefile taucht das auf.
ast sah auf den ersten Blick gut aus, ist aber viel zu kompliziert - obwohl ich es mittlerweile verstanden habe. Da erscheint es mir einfacher, wenn ich meinen Code selbst parse.