-def cmdColour(colour):
- '''
- Return the ansi cmd colour (i.e. escape sequence)
- for the ansi `colour` value
- '''
- return ESC + "[" + colour + "m"
+class AnsiCmd(object):
+ def __init__(self, forceAnsi):
+ self.forceAnsi = forceAnsi
+
+ def cmdReset(self):
+ ''' Returns the ansi cmd colour for a RESET '''
+ if sys.stdout.isatty() or self.forceAnsi:
+ return ESC + "[0m"
+ else:
+ return ""
+
+ def cmdColour(self, colour):
+ '''
+ Return the ansi cmd colour (i.e. escape sequence)
+ for the ansi `colour` value
+ '''
+ if sys.stdout.isatty() or self.forceAnsi:
+ return ESC + "[" + colour + "m"
+ else:
+ return ""
+
+ def cmdColourNamed(self, colour):
+ ''' Return the ansi cmdColour for a given named `colour` '''
+ try:
+ return self.cmdColour(COLOURS_NAMED[colour])
+ except KeyError:
+ raise AnsiColourException('Unknown Colour %s' % (colour))
+
+ def cmdBold(self):
+ if sys.stdout.isatty() or self.forceAnsi:
+ return ESC + "[1m"
+ else:
+ return ""