I’ve had to do some introspection in python and it wasn’t pretty:
name = sys._getframe(1).f_code name = '%s:%d %s()' %(os.path.split(name.co_filename)[1],name.co_firstlineno,name.co_name)
To get something like
foo.py:22 bar() blah blah
In our debugging output.
I’d ideally like to prepend anything to stderr with this sort of information — Is it possible to change the behaviour of print globally within python?
A print statement does its IO through ‘sys.stdout.write’ so you can override sys.stdout if you want to manipulate the print stream.