Index: third_party/colorama/README.txt |
diff --git a/third_party/colorama/README.txt b/third_party/colorama/README.txt |
new file mode 100644 |
index 0000000000000000000000000000000000000000..33467f76e933ca31a0a903b5bc3e361f0f0cb3e9 |
--- /dev/null |
+++ b/third_party/colorama/README.txt |
@@ -0,0 +1,264 @@ |
+Download and docs: |
+ http://pypi.python.org/pypi/colorama |
+Development: |
+ http://code.google.com/p/colorama |
+ |
+Description |
+=========== |
+ |
+Makes ANSI escape character sequences, for producing colored terminal text and |
+cursor positioning, work under MS Windows. |
+ |
+ANSI escape character sequences have long been used to produce colored terminal |
+text and cursor positioning on Unix and Macs. Colorama makes this work on |
+Windows, too. It also provides some shortcuts to help generate ANSI sequences, |
+and works fine in conjunction with any other ANSI sequence generation library, |
+such as Termcolor (http://pypi.python.org/pypi/termcolor.) |
+ |
+This has the upshot of providing a simple cross-platform API for printing |
+colored terminal text from Python, and has the happy side-effect that existing |
+applications or libraries which use ANSI sequences to produce colored output on |
+Linux or Macs can now also work on Windows, simply by calling |
+``colorama.init()``. |
+ |
+Demo scripts in the source code repository prints some colored text using |
+ANSI sequences. Compare their output under Gnome-terminal's built in ANSI |
+handling, versus on Windows Command-Prompt using Colorama: |
+ |
+.. image:: http://colorama.googlecode.com/hg/screenshots/ubuntu-demo.png |
+ :width: 661 |
+ :height: 357 |
+ :alt: ANSI sequences on Ubuntu under gnome-terminal. |
+ |
+.. image:: http://colorama.googlecode.com/hg/screenshots/windows-demo.png |
+ :width: 668 |
+ :height: 325 |
+ :alt: Same ANSI sequences on Windows, using Colorama. |
+ |
+These screengrabs show that Colorama on Windows does not support ANSI 'dim |
+text': it looks the same as 'normal text'. |
+ |
+ |
+Dependencies |
+============ |
+ |
+None, other than Python. Tested on Python 2.5.5, 2.6.5, 2.7, 3.1.2, and 3.2 |
+ |
+ |
+Usage |
+===== |
+ |
+Initialisation |
+-------------- |
+ |
+Applications should initialise Colorama using:: |
+ |
+ from colorama import init |
+ init() |
+ |
+If you are on Windows, the call to ``init()`` will start filtering ANSI escape |
+sequences out of any text sent to stdout or stderr, and will replace them with |
+equivalent Win32 calls. |
+ |
+Calling ``init()`` has no effect on other platforms (unless you request other |
+optional functionality, see keyword args below.) The intention is that |
+applications can call ``init()`` unconditionally on all platforms, after which |
+ANSI output should just work. |
+ |
+To stop using colorama before your program exits, simply call ``deinit()``. |
+This will restore stdout and stderr to their original values, so that Colorama |
+is disabled. To start using Colorama again, call ``reinit()``, which wraps |
+stdout and stderr again, but is cheaper to call than doing ``init()`` all over |
+again. |
+ |
+ |
+Colored Output |
+-------------- |
+ |
+Cross-platform printing of colored text can then be done using Colorama's |
+constant shorthand for ANSI escape sequences:: |
+ |
+ from colorama import Fore, Back, Style |
+ print Fore.RED + 'some red text' |
+ print Back.GREEN + and with a green background' |
+ print Style.DIM + 'and in dim text' |
+ print + Fore.RESET + Back.RESET + Style.RESET_ALL |
+ print 'back to normal now' |
+ |
+or simply by manually printing ANSI sequences from your own code:: |
+ |
+ print '/033[31m' + 'some red text' |
+ print '/033[30m' # and reset to default color |
+ |
+or Colorama can be used happily in conjunction with existing ANSI libraries |
+such as Termcolor:: |
+ |
+ from colorama import init |
+ from termcolor import colored |
+ |
+ # use Colorama to make Termcolor work on Windows too |
+ init() |
+ |
+ # then use Termcolor for all colored text output |
+ print colored('Hello, World!', 'green', 'on_red') |
+ |
+Available formatting constants are:: |
+ |
+ Fore: BLACK, RED, GREEN, YELLOW, BLUE, MAGENTA, CYAN, WHITE, RESET. |
+ Back: BLACK, RED, GREEN, YELLOW, BLUE, MAGENTA, CYAN, WHITE, RESET. |
+ Style: DIM, NORMAL, BRIGHT, RESET_ALL |
+ |
+Style.RESET_ALL resets foreground, background and brightness. Colorama will |
+perform this reset automatically on program exit. |
+ |
+ |
+Cursor Positioning |
+------------------ |
+ |
+ANSI codes to reposition the cursor are supported. See demos/demo06.py for |
+an example of how to generate them. |
+ |
+ |
+Init Keyword Args |
+----------------- |
+ |
+``init()`` accepts some kwargs to override default behaviour. |
+ |
+init(autoreset=False): |
+ If you find yourself repeatedly sending reset sequences to turn off color |
+ changes at the end of every print, then ``init(autoreset=True)`` will |
+ automate that:: |
+ |
+ from colorama import init |
+ init(autoreset=True) |
+ print Fore.RED + 'some red text' |
+ print 'automatically back to default color again' |
+ |
+init(strip=None): |
+ Pass ``True`` or ``False`` to override whether ansi codes should be |
+ stripped from the output. The default behaviour is to strip if on Windows. |
+ |
+init(convert=None): |
+ Pass ``True`` or ``False`` to override whether to convert ansi codes in the |
+ output into win32 calls. The default behaviour is to convert if on Windows |
+ and output is to a tty (terminal). |
+ |
+init(wrap=True): |
+ On Windows, colorama works by replacing ``sys.stdout`` and ``sys.stderr`` |
+ with proxy objects, which override the .write() method to do their work. If |
+ this wrapping causes you problems, then this can be disabled by passing |
+ ``init(wrap=False)``. The default behaviour is to wrap if autoreset or |
+ strip or convert are True. |
+ |
+ When wrapping is disabled, colored printing on non-Windows platforms will |
+ continue to work as normal. To do cross-platform colored output, you can |
+ use Colorama's ``AnsiToWin32`` proxy directly:: |
+ |
+ from colorama import init, AnsiToWin32 |
+ init(wrap=False) |
+ stream = AnsiToWin32(sys.stderr).stream |
+ print >>stream, Fore.BLUE + 'blue text on stderr' |
+ |
+ |
+Status & Known Problems |
+======================= |
+ |
+I've personally only tested it on WinXP (CMD, Console2) and Ubuntu |
+(gnome-terminal, xterm), although it sounds like others are using it on other |
+platforms too. |
+ |
+See outstanding issues and wishlist at: |
+http://code.google.com/p/colorama/issues/list |
+ |
+If anything doesn't work for you, or doesn't do what you expected or hoped for, |
+I'd *love* to hear about it on that issues list. |
+ |
+ |
+Recognised ANSI Sequences |
+========================= |
+ |
+ANSI sequences generally take the form: |
+ |
+ ESC [ <param> ; <param> ... <command> |
+ |
+Where <param> is an integer, and <command> is a single letter. Zero or more |
+params are passed to a <command>. If no params are passed, it is generally |
+synonymous with passing a single zero. No spaces exist in the sequence, they |
+have just been inserted here to make it easy to read. |
+ |
+The only ANSI sequences that colorama converts into win32 calls are:: |
+ |
+ ESC [ 0 m # reset all (colors and brightness) |
+ ESC [ 1 m # bright |
+ ESC [ 2 m # dim (looks same as normal brightness) |
+ ESC [ 22 m # normal brightness |
+ |
+ # FOREGROUND: |
+ ESC [ 30 m # black |
+ ESC [ 31 m # red |
+ ESC [ 32 m # green |
+ ESC [ 33 m # yellow |
+ ESC [ 34 m # blue |
+ ESC [ 35 m # magenta |
+ ESC [ 36 m # cyan |
+ ESC [ 37 m # white |
+ ESC [ 39 m # reset |
+ |
+ # BACKGROUND |
+ ESC [ 40 m # black |
+ ESC [ 41 m # red |
+ ESC [ 42 m # green |
+ ESC [ 43 m # yellow |
+ ESC [ 44 m # blue |
+ ESC [ 45 m # magenta |
+ ESC [ 46 m # cyan |
+ ESC [ 47 m # white |
+ ESC [ 49 m # reset |
+ |
+ # cursor positioning |
+ ESC [ x;y H # position cursor at x,y |
+ |
+ # clear the screen |
+ ESC [ mode J # clear the screen. Only mode 2 (clear entire screen) |
+ # is supported. It should be easy to add other modes, |
+ # let me know if that would be useful. |
+ |
+Multiple numeric params to the 'm' command can be combined into a single |
+sequence, eg:: |
+ |
+ ESC [ 36 ; 45 ; 1 m # bright cyan text on magenta background |
+ |
+All other ANSI sequences of the form ``ESC [ <param> ; <param> ... <command>`` |
+are silently stripped from the output on Windows. |
+ |
+Any other form of ANSI sequence, such as single-character codes or alternative |
+initial characters, are not recognised nor stripped. It would be cool to add |
+them though. Let me know if it would be useful for you, via the issues on |
+google code. |
+ |
+ |
+Development |
+=========== |
+ |
+Running tests requires: |
+ |
+- Michael Foord's 'mock' module to be installed. |
+- Tests are written using the 2010 era updates to 'unittest', and require to |
+ be run either using Python2.7 or greater, or else to have Michael Foord's |
+ 'unittest2' module installed. |
+ |
+unittest2 test discovery doesn't work for colorama, so I use 'nose':: |
+ |
+ nosetests -s |
+ |
+The -s is required because 'nosetests' otherwise applies a proxy of its own to |
+stdout, which confuses the unit tests. |
+ |
+ |
+Thanks |
+====== |
+Daniel Griffith for multiple fabulous patches. |
+Oscar Lesta for valuable fix to stop ANSI chars being sent to non-tty output. |
+Roger Binns, for many suggestions, valuable feedback, & bug reports. |
+Tim Golden for thought and much appreciated feedback on the initial idea. |
+ |