On 2013-06-03 08:55, Steven D'Aprano wrote:
The sys module defines two hooks that are used in the interactive
interpreter:
* sys.displayhook(value) gets called with the result of evaluating the
line when you press ENTER;
* sys.excepthook(type, value, traceback) gets called with the details of
the exception when your line raises an exception.
Is there a way to hook into the interactive interpreter *before* it is
evaluated? That is, if I type "len([])" at the prompt and hit ENTER, I
want a hook that runs before len([]) is evaluated to 0, so that I get the
string "len([])".
You will need to write your own REPL for this. Use the code.InteractiveConsole
class:
http://docs.python.org/2/library/code
I recommend source-diving to see what you need to override, but I suspect you
can just wrap around the `runsource()` method.
--
Robert Kern
"I have come to believe that the whole world is an enigma, a harmless enigma
that is made terrible by our own mad attempt to interpret it as though it had
an underlying truth."
-- Umberto Eco
--
http://mail.python.org/mailman/listinfo/python-list