mirror of https://gitlab.com/QEF/q-e.git
52 lines
1.1 KiB
Python
52 lines
1.1 KiB
Python
'''
|
|
testcode2.ansi
|
|
--------------
|
|
|
|
(A subset of) ANSI codes and functions to wrap codes around strings.
|
|
|
|
:copyright: (c) 2012 James Spencer.
|
|
:license: modified BSD; see LICENSE for more details.
|
|
'''
|
|
|
|
import sys
|
|
|
|
ANSI_START = '\033['
|
|
ANSI_END = '\033[0m'
|
|
|
|
ANSI_SGR = dict(
|
|
bold=1,
|
|
)
|
|
|
|
ANSI_INTENSITY = dict(
|
|
normal=0,
|
|
bright=60,
|
|
)
|
|
|
|
ANSI_COLOUR = dict(
|
|
black=30,
|
|
red=31,
|
|
green=32,
|
|
yellow=33,
|
|
blue=34,
|
|
magenta=35,
|
|
cyan=36,
|
|
white=37,
|
|
)
|
|
|
|
def ansi_format(string, colour='black', intensity='normal', style=None,
|
|
override=False):
|
|
'''Return string wrapped in the appropriate ANSI codes.
|
|
|
|
Note: if not writing to a true terminal and override is false, then the string
|
|
is not modified.
|
|
'''
|
|
|
|
if sys.stdout.isatty() or override:
|
|
code = str(ANSI_COLOUR[colour]+ANSI_INTENSITY[intensity])
|
|
if style:
|
|
code += ';%s' % (ANSI_SGR[style])
|
|
code += 'm'
|
|
return ANSI_START + code + string + ANSI_END + ANSI_END
|
|
else:
|
|
return string
|