You can find the line number that the func was defined in and reparse the source. I do this in quite a few decorators that need source.
The other option is to wrap the thing decorated in a doc string
@fancy_source_needing_decorator
def foo(s):
"""
put some haskell or DSL stuff in here
"""
Then you don't have to reparse the source, etc etc, but it still gets packaged as a function.Would you mind linking to some examples? I'd love to read them.
Re:Goto decorator for python
by cheatercheater on Monday March 12, 2012 @08:37PM
(#3696417)
I remember this being used in a unit testing framework of some sort.. maybe twisted's?
I thought about this and wrote a patch for CPython that it also stores the original AST of any compiled function in the function object.
Some discussion about this:
http://thread.gmane.org/gmane.comp.python.devel/126754
http://thread.gmane.org/gmane.comp.python.devel/126760