On 5/6/07, Tina I <[EMAIL PROTECTED]> 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 ? -- http://mail.python.org/mailman/listinfo/python-list