I did something somewhat like this about 10 years ago, at <a href="http://www.dalkescientific.com/writings/diary/archive/2008/03/10/python4ply_tutorial_3.html" rel="nofollow">http://www.dalkescientific.com/writings/diary/archive/2008/0...</a> :<p><pre><code> for line in open("python_yacc.py"):
if line =~ m/def (?P<name>\w+) *(?P<args>\(.*\)) *:/:
print repr($1), repr($args)
</code></pre>
I did not use import hooks, like this project does.<p>It got appreciative hisses when I did a lightning talk about it at a PyCon.