Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.python > #46780
| References | <51ac4bfc$0$11118$c3e8da3@news.astraweb.com> |
|---|---|
| Date | 2013-06-03 10:00 +0100 |
| Subject | Re: Interactive interpreter hooks |
| From | Fábio Santos <fabiosantosart@gmail.com> |
| Newsgroups | comp.lang.python |
| Message-ID | <mailman.2588.1370250043.3114.python-list@python.org> (permalink) |
[Multipart message — attachments visible in raw view] - view raw
On 3 Jun 2013 09:04, "Steven D'Aprano" <steve+comp.lang.python@pearwood.info> 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([])". > I don't know whether that is possible, but you could recreate the repl. This page seems to have good resources for that: http://stackoverflow.com/questions/1395913/python-drop-into-repl-read-eval-print-loop A trace function could also work. See docs for sys.settrace. The source code for the python GOTO module is a good example of its usage.
Back to comp.lang.python | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
Interactive interpreter hooks Steven D'Aprano <steve+comp.lang.python@pearwood.info> - 2013-06-03 07:55 +0000 Re: Interactive interpreter hooks Fábio Santos <fabiosantosart@gmail.com> - 2013-06-03 10:00 +0100 Re: Interactive interpreter hooks Terry Jan Reedy <tjreedy@udel.edu> - 2013-06-03 09:03 -0400 Re: Interactive interpreter hooks Robert Kern <robert.kern@gmail.com> - 2013-06-03 14:19 +0100
csiph-web