1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 """
18 =================
19 Terminal writer
20 =================
21 """
22 __author__ = u"Andr\xe9 Malo"
23 __docformat__ = "restructuredtext en"
24
25 import sys as _sys
26
27
29 """ Terminal info dict """
30
32 """ Initialization """
33 dict.__init__(self, {
34 'NORMAL': '',
35 'BOLD': '',
36 'ERASE': '\n',
37 'RED': '',
38 'YELLOW': '',
39 'GREEN': '',
40 })
41 try:
42 import curses as _curses
43 except ImportError:
44
45 if 'curses' in _sys.modules:
46 del _sys.modules['curses']
47 else:
48 try:
49 _curses.setupterm()
50 except (TypeError, _curses.error):
51 pass
52 else:
53 def make_color(color):
54 """ Make color control string """
55 seq = _curses.tigetstr('setaf')
56 if seq is not None:
57
58 seq = seq.replace("%p1", "") % color
59 return seq
60
61 self['NORMAL'] = _curses.tigetstr('sgr0')
62 self['BOLD'] = _curses.tigetstr('bold')
63
64 erase = _curses.tigetstr('el1')
65 if erase is not None:
66 self['ERASE'] = erase + _curses.tigetstr('cr')
67
68 self['RED'] = make_color(_curses.COLOR_RED)
69 self['YELLOW'] = make_color(_curses.COLOR_YELLOW)
70 self['GREEN'] = make_color(_curses.COLOR_GREEN)
71
73 """ Deliver always """
74 dict.get(self, key) or ""
75
76
83 terminfo.info = None
84
85
87 """ Write stuff on the terminal """
88 parm = dict(terminfo())
89 parm.update(kwargs)
90 _sys.stdout.write(fmt % parm)
91 _sys.stdout.flush()
92
93
95 """ Write something in green on screen """
96 announce("%%(GREEN)s%s%%(NORMAL)s" % bmt, **kwargs)
97
98
99 -def red(bmt, **kwargs):
100 """ Write something in red on the screen """
101 announce("%%(BOLD)s%%(RED)s%s%%(NORMAL)s" % bmt, **kwargs)
102
103
105 """ Write something in yellow on the screen """
106 announce("%%(BOLD)s%%(YELLOW)s%s%%(NORMAL)s" % fmt, **kwargs)
107
108
110 """ Announce something """
111 write(fmt, **kwargs)
112 _sys.stdout.write("\n")
113 _sys.stdout.flush()
114