Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1455)

Unified Diff: third_party/colorama/README.txt

Issue 8371006: Reapply r106708 "Include initial use of colorama" (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/tools/depot_tools
Patch Set: Created 9 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « third_party/colorama/README.chromium ('k') | third_party/colorama/__init__.py » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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.
+
« no previous file with comments | « third_party/colorama/README.chromium ('k') | third_party/colorama/__init__.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698