IPython colors in windows

Claudio Grondi claudio.grondi at freenet.de
Sun Feb 6 19:45:43 EST 2005


Hi,

I have just updated previously announced
and uploaded to
 http://people.freenet.de/AiTI-IT/Python/Console.py
version
of Console.py because I was not satisfied with
it (it didn't support arbitrary ANSI escape
sequences for setting text colors ...)

Now the Console() class supports ANSI escape
sequences of the form ESC[#m and ESC[#,#m ,
so it is possible to set any colors for text and
background  via escape sequences.

Resetting the colors with ESC[0m will set
them back to initial(default) ones.

Now it is also possible to send a _sequence_
of  ANSI escape sequences to Console.write().
e.g.
     '\x1B[31m'
     '\x1B[1m'
will cause later submitted text to be light red.

Running Console.py creates coloured
test output which can be checked for
integrity.

Any feedback is welcome.

Claudio

"Claudio Grondi" <claudio.grondi at freenet.de> schrieb im Newsbeitrag
news:36n1gfF505tarU1 at individual.net...
> Hi,
>
> I have done some more work on Console.py
> from the readline package version 1.12, adding
> support for background colors and testing of proper
> function of them (run the Console.py script to
> see coloured output).
> Added was also the possibility to set the default
> text/background colors for colored output using:
>   Console.setStandardBackgroundColorTo(strColor)
>   Console.setStandardForegroundColorTo(strColor)
> where strColor can be one of:
> [
>  '(dark)black'
> ,'(dark)red',
> ,'(dark)green'
> ,'(dark)yellow'
> ,'(dark)blue'
> ,'(dark)purple'
> ,'(dark)cyan'
> ,'(dark)white'
> ,'light black'
> ,'light red'
> ,'light green'
> ,'light yellow'
> ,'light blue'
> ,'light purple'
> ,'light cyan'
> ,'light white'
> ]
>
> There are some comments added where e.g.
> the colors are named including their HTML color
> notation to clarify which colors are displayed.
> I work on Windows 2000 SP 4, so it will be
> interesting for me to get some feedback if the
> colors are the same in other Windows versions.
> Which colors are displayed on Linux/Unix by
> the native readline?
>
> There are also some other changes done to
> make the code better readable (from my
> personal point of view ;-)
>
> The blnIPythonFixActive flag allows to set colored
> text output of IPython to (dark)white background
> (instead of the standard one, which is  in my
> Console the 'light white' one i.e. I work with white
> background as IDLE does).
>
> Another modification is, that when a text without
> escape sequences is passed to Console.write(),
> no escape sequences are sent, so, that the
> colouring stays the same until it is explicitely
> reset. I find this behaviour more strightforward
> than the implicit writing of texts in the standard
> colors if no colors are specified.
>
> If someone is interested to check it out I have
> uploaded it to:
>  http://people.freenet.de/AiTI-IT/Python/Console.py
>
> The extended Console.py module can be used
> standalone for writing of any coloured texts
> to the console using alternatively .
>   Console.setStandardBackgroundColorTo(strColor)
>   Console.setStandardForegroundColorTo(strColor)
>   with resetting the colors
> or the build-in ANSI escape sequences for the
> text and the background.
>
> Utilizing the code or some parts of it in
> the next release of readline is welcome.
>
> Claudio
>
> "Gary Bishop" <gb at cs.unc.edu> schrieb im Newsbeitrag
> news:42057751_1 at news.unc.edu...
> > On SourceForge you will find release 1.12 of my Python readline
> > module. If you don't want to hack the colors, there is no reason to
> > upgrade from 1.11 to 1.12. They *should* work the same.
> >
> > But if you'd like to hack the iPython colors this new version makes it
> > possible.  In your ipythonrc file add a line like:
> >
> > execfile hackcolors.py
> >
> > Now in hackcolors.py you can change colors and backgrounds like this:
> >
> > ####hackcolors.py####
> > import readline
> >
> > # reach deep into the bowels of readline to get the color table
> > escape_to_color = readline.rl.console.escape_to_color
> >
> > # change a color
> > escape_to_color['0;32'] = 0x72
> >
> > del escape_to_color
> > del readline
> >
> > #################
> >
> > The two hex digits are the background and foreground color
> > respectively. In the example above I'm setting the color to green on a
> > grey background. Here is the table that is normally used to translate
> > colors.
> >
> >   escape_to_color = { '0;30': 0x0,             #black
> >                       '0;31': 0x4,             #red
> >                       '0;32': 0x2,             #green
> >                       '0;33': 0x4+0x2,         #brown?
> >                       '0;34': 0x1,             #blue
> >                       '0;35': 0x1+0x4,         #purple
> >                       '0;36': 0x2+0x4,         #cyan
> >                       '0;37': 0x1+0x2+0x4,     #grey
> >                       '1;30': 0x1+0x2+0x4,     #dark gray
> >                       '1;31': 0x4+0x8,         #red
> >                       '1;32': 0x2+0x8,         #light green
> >                       '1;33': 0x4+0x2+0x8,     #yellow
> >                       '1;34': 0x1+0x8,         #light blue
> >                       '1;35': 0x1+0x4+0x8,     #light purple
> >                       '1;36': 0x1+0x2+0x8,     #light cyan
> >                       '1;37': 0x1+0x2+0x4+0x8, #white
> >                       '0': None,
> >                       }
> >
> > An interested party should be able to arbitrarily map colors and their
> > backgrounds.
> >
> > Enjoy,
> > gb
> >
>
>





More information about the Python-list mailing list