Ich schreibe ein Programm, das versucht, zwei Methoden zu vergleichen. Ich möchte Control Flow Graphs (CFG) für alle übereinstimmenden Methoden generieren und entweder eine topologische Sortierung zum Vergleich der beiden Graphen verwenden.
RPython , die Übersetzungswerkzeugkette hinter PyPy bietet eine Möglichkeit, das Flussdiagramm (im pypy/rpython/flowspace
Verzeichnis des PyPy-Projekts) für Typ-Inferenz .
Dies funktioniert in den meisten Fällen ziemlich gut, aber Generatoren werden nicht unterstützt. Das Ergebnis wird in SSA-Form sein, was gut oder schlecht sein kann, je nachdem, was Sie wollen.
Ссылка sieht aus wie Sie es brauchen.
Das Python-Trace -Modul verfügt auch über die Option --trackcalls
, die ein Einstiegspunkt für Anrufverfolgungsmaschinen in stdlib sein kann.