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.
# 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
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.
“Vir, intelligence has nothing to do with politics!” — Londo Mollari
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.