[IPython-user] Hooking into the autocall displayer

Tom Denniston tom.denniston@alum.dartmouth....
Tue Sep 18 19:33:15 CDT 2007


Including the whole list.

On 9/18/07, Tom Denniston <tom.denniston@alum.dartmouth.org> wrote:
> This works very well.  The one hitch I ran into was that IPython
> prints the "Out[1]:" prompt before it calls the display hook.  Is it
> possible to hook in before rather than after the printing of the out
> prompt?
>
> On 9/18/07, Tom Denniston <tom.denniston@alum.dartmouth.org> wrote:
> > I think I figured it out.  The shell object, in my case
> > IPython.Shell.IPShellWx has an IP member that seems to work.
> >
> > On 9/18/07, Tom Denniston <tom.denniston@alum.dartmouth.org> wrote:
> > > Thanks Jorgen.  That is exactly what I was looking for.
> > >
> > > Fernando, do you happen to know what is the correct way to obtain
> > > access to __IP?
> > >
> > > On 9/18/07, Jörgen Stenarson <jorgen.stenarson@bostream.nu> wrote:
> > > > Tom,
> > > >
> > > > I think the problem is that on windows stdout is connected to the
> > > > console window which cannot interpret ansi color codes. Instead you need
> > > > to call a special function that does this for you. One way is to use
> > > > __IP.write to access the write method on the IPShell instance which does
> > > > this. I'm not sure what is the correct way to obtain this object.
> > > >
> > > > def shortCutFunc(s):
> > > >     __IP.write(sys.displayhook.prompt1.auto_rewrite()+ 'print %r\n'%s)
> > > >
> > > > gives the desired behaviour when defined at the prompt.
> > > >
> > > >
> > > > /Jörgen
> > > >
> > > >
> > > > >
> > > > > On windows this same code fails miserably because the escape sequences
> > > > > don't get translated properly to colors:
> > > > >
> > > > > In [10]: def shortCutFunc(s):
> > > > >    ....:      sys.stdout.write(sys.displayhook.prompt1.auto_rewrite()+ 'print %r
> > > > > \n'%s)
> > > > >    ....:  print s
> > > > >    ....:  sys.stdout.write(sys.displayhook.prompt1.auto_rewrite()+ 'print repr(%
> > > > > r)\n'%s)
> > > > >    ....:  print repr(s)
> > > > >    ....:
> > > > >
> > > > > In [11]: shortCutFunc('s')
> > > > > ←[0;32m-------> ←[0mprint 's'
> > > > > s
> > > > > ←[0;32m-------> ←[0mprint repr('s')
> > > > > 's'
> > > > >
> > > > >
> > > > >
> > > > > I suspect my sys.stdout.write is the problem but I don't know the
> > > > > correct cross platform alternative.
> > > > >
> > > > >
> > > > > Is this clear?
> > > > >
> > > > >
> > > > > On 9/17/07, Jörgen Stenarson <jorgen.stenarson@bostream.nu> wrote:
> > > > >> Tom,
> > > > >>
> > > > >> can you provide a complete self contained example of what you are trying
> > > > >> to do? With a description of desired results. It would be helpful in
> > > > >> figuring out what goes wrong.
> > > > >>
> > > > >> /Jörgen
> > > > >>
> > > > >>> In particular, in this case I don't really know what the problem is on
> > > > >>> Win32, since I know very little about the handling of color escapes on
> > > > >>> that platform.  I hope our resident win32 experts may be able to help.
> > > > >>>
> > > > >>> Cheers,
> > > > >>>
> > > > >>>
> > > > >>> f
> > > > >>> _______________________________________________
> > > > >>> IPython-user mailing list
> > > > >>> IPython-user@scipy.org
> > > > >>> http://lists.ipython.scipy.org/mailman/listinfo/ipython-user
> > > > >>>
> > > > >> _______________________________________________
> > > > >> IPython-user mailing list
> > > > >> IPython-user@scipy.org
> > > > >> http://lists.ipython.scipy.org/mailman/listinfo/ipython-user
> > > > >>
> > > >
> > > > _______________________________________________
> > > > IPython-user mailing list
> > > > IPython-user@scipy.org
> > > > http://lists.ipython.scipy.org/mailman/listinfo/ipython-user
> > > >
> > >
> >
>


More information about the IPython-user mailing list