[IPython-user] Hooking into the autocall displayer
Jörgen Stenarson
jorgen.stenarson@bostream...
Tue Sep 18 11:16:03 CDT 2007
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
>>
More information about the IPython-user
mailing list