thighlighttext.py - sphere - GPU-based 3D discrete element method algorithm with optional fluid coupling
(HTM) git clone git://src.adamsgaard.dk/sphere
(DIR) Log
(DIR) Files
(DIR) Refs
(DIR) LICENSE
---
thighlighttext.py (1292B)
---
1 #!/usr/bin/env python
2 # ANSI color coded text if the terminal supports it. No external requirements.
3 # Inspired by
4 # http://korbinin.blogspot.dk/2012/10/color-text-output-from-python.html
5
6 import sys
7
8 def highlight(string, fg, bold=False):
9 '''
10 Return `string` with ANSI color codes.
11
12 :param string: String to colorize.
13 :type string: str
14 :param fg: Foreground text color. Possible values: 'g', 'green', 'r', 'red',
15 'y', 'yellow', 'b', 'blue', 'm' or 'magenta'
16 :type fg: str
17 :param bold: Bold text
18 :type bold: bool
19
20 :returns: ANSI formatted string, can be `print()`'ed directly.
21 :return type: str
22 '''
23
24 attr = []
25 if sys.stdout.isatty():
26
27 if fg == 'g' or fg == 'green':
28 attr.append('32')
29
30 elif fg == 'r' or fg == 'red':
31 attr.append('31')
32
33 elif fg == 'y' or fg == 'yellow':
34 attr.append('33')
35
36 elif fg == 'b' or fg == 'blue':
37 attr.append('34')
38
39 elif fg == 'm' or fg == 'magenta':
40 attr.append('35')
41
42 else:
43 raise Exception('Error: Foreground color `fg` value not understood')
44
45 if bold:
46 attr.append('1')
47
48 return '\x1b[%sm%s\x1b[0m' % (';'.join(attr), string)
49
50 else:
51 return string