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" <[EMAIL PROTECTED]> schrieb im Newsbeitrag news:[EMAIL PROTECTED] > 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" <[EMAIL PROTECTED]> schrieb im Newsbeitrag > news:[EMAIL PROTECTED] > > 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 > > > > -- http://mail.python.org/mailman/listinfo/python-list