]> jfr.im git - z_archive/twitter.git/blobdiff - twitter/ansi.py
Version 1.17.0
[z_archive/twitter.git] / twitter / ansi.py
index 1537000ec8c4208a57fee9cbadd6cb1f981d07da..0ae2071cef4c843bb4d15ddf1d43decb06ac40f9 100644 (file)
@@ -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)