X-Git-Url: https://jfr.im/git/z_archive/twitter.git/blobdiff_plain/9376cfa693173f3dea378c32c1d24668eece59ca..17b9ff10207340026b876eb623660f2c79bfe85d:/twitter/ansi.py diff --git a/twitter/ansi.py b/twitter/ansi.py index 1537000..0ae2071 100644 --- a/twitter/ansi.py +++ b/twitter/ansi.py @@ -51,26 +51,52 @@ class ColourMap(object): self._cmap[string] = next(self._colourIter) return self._cmap[string] +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 "" + + def cmdUnderline(self): + if sys.stdout.isatty() or self.forceAnsi: + return ESC + "[4m" + else: + return "" + +"""These exist to maintain compatibility with users of version<=1.9.0""" def cmdReset(): - ''' Returns the ansi cmd colour for a RESET ''' - if sys.stdout.isatty(): - return ESC + "[0m" - else: - return "" + return AnsiCmd(False).cmdReset() def cmdColour(colour): - ''' - Return the ansi cmd colour (i.e. escape sequence) - for the ansi `colour` value - ''' - if sys.stdout.isatty(): - return ESC + "[" + colour + "m" - else: - return "" + return AnsiCmd(False).cmdColour(colour) def cmdColourNamed(colour): - ''' Return the ansi cmdColour for a given named `colour` ''' - try: - return cmdColour(COLOURS_NAMED[colour]) - except KeyError: - raise AnsiColourException('Unknown Colour %s' %(colour)) + return AnsiCmd(False).cmdColourNamed(colour)