Init style output with python?

Maxim Veksler hq4ever at gmail.com
Sun May 6 10:00:18 EDT 2007


On 5/6/07, Tina I <tinaweb at bestemselv.com> wrote:
> Maxim Veksler wrote:
>
> > Is there are frame work or something in python that would allow me to
> > do this (quickly) ?
> > If not, ideas how I should I be getting this boring task of:
> > 1. get screen width
>
> You can look into the 'curses' module and do something like:
>
>         screen = curses.initscreen()
>         maxheight, maxwith = screen.getmaxyx()
>
> In my experience curses can be a bit tricky to work with but the online
> tutorials have some nice examples that help you avoid some of the
> pitfalls (like messing up your terminal)
>
> Tina
> --
> http://mail.python.org/mailman/listinfo/python-list
>

Fine! Thank you.

curses is very helpful, I'm attaching the code.
I see it has support for colors as well, but I haven't found any
tutorial that would explain how to use them.

Please note that this is just a draft, I'm not catching any
KeyboardInterrupt nor nothing.

"""#!/usr/bin/env python

class ColorTerm:
    def __init__(self, Mono = False):
	pass

    def __get_tput_color_value__(colorcode):
	from commands import getoutput
	return getoutput('tput setaf ' + colorcode)

    BLACK_FG = 	__get_tput_color_value__('0')
    RED_FG = 		__get_tput_color_value__('1')
    GREEN_FG = 	__get_tput_color_value__('2')
    YELLOW_FG = 	__get_tput_color_value__('3')
    BLUE_FG = 		__get_tput_color_value__('4')
    MAGENTA_FG = 	__get_tput_color_value__('5')
    CYAN_FG = 		__get_tput_color_value__('6')
    WHITE_FG = 	__get_tput_color_value__('7')

    def black(self, msg):
	return self.BLACK_FG + msg + self.BLACK_FG

    def red(self, msg):
	return self.RED_FG + msg + self.BLACK_FG

    def green(self, msg):
	return self.GREEN_FG + msg + self.BLACK_FG

    def yellow(self, msg):
	return self.YELLOW_FG + msg + self.BLACK_FG

    def blue(self, msg):
	return self.BLUE_FG + msg + self.BLACK_FG

    def magenta(self, msg):
	return self.MAGENTA_FG + msg + self.BLACK_FG

    def cyan(self, msg):
	return self.CYAN_FG + msg + self.BLACK_FG

    def white(self, msg):
	return self.WHITE_FG + msg + self.BLACK_FG

class StatusWriter(ColorTerm):
    import curses

    def __init__(self, report_type = None):
        pass

    def initstyle_message(self, msg, status = True):
        screen = self.curses.initscr(); self.curses.endwin()
        if status:
            status_msg = '[' + self.green('OK') + ']'
        else:
            status_msg = '[' + self.red('FAIL') + ']'

        spaces_count = ( screen.getmaxyx()[1] - (len(msg)+len(status_msg)) )
        return msg + ' '*spaces_count + status_msg

cc = StatusWriter()
while 1:
    print cc.initstyle_message('The end is at hand')
    print cc.initstyle_message('Lets party', False)
    print cc.initstyle_message('Why like this?', True)
"""

-- 
Cheers,
Maxim Veksler

"Free as in Freedom" - Do u GNU ?



More information about the Python-list mailing list