Kaydet (Commit) 12615dab authored tarafından Ramiro Morales's avatar Ramiro Morales

Fixed #13476 -- Added support for color in console output under Windows.

Detect and use the services of the ANSICON third-party tool if it's
available.
üst c75dd664
...@@ -13,10 +13,12 @@ def supports_color(): ...@@ -13,10 +13,12 @@ def supports_color():
Returns True if the running system's terminal supports color, and False Returns True if the running system's terminal supports color, and False
otherwise. otherwise.
""" """
unsupported_platform = (sys.platform in ('win32', 'Pocket PC')) plat = sys.platform
supported_platform = plat != 'Pocket PC' and (plat != 'win32' or
'ANSICON' in os.environ)
# isatty is not always implemented, #6223. # isatty is not always implemented, #6223.
is_a_tty = hasattr(sys.stdout, 'isatty') and sys.stdout.isatty() is_a_tty = hasattr(sys.stdout, 'isatty') and sys.stdout.isatty()
if unsupported_platform or not is_a_tty: if not supported_platform or not is_a_tty:
return False return False
return True return True
......
...@@ -1552,6 +1552,11 @@ color-coded output if your terminal supports ANSI-colored output. It ...@@ -1552,6 +1552,11 @@ color-coded output if your terminal supports ANSI-colored output. It
won't use the color codes if you're piping the command's output to won't use the color codes if you're piping the command's output to
another program. another program.
Under Windows, the native console doesn't support ANSI escape sequences so by
default there is no color output. But you can install the `ANSICON`_
third-party tool, the Django commands will detect its presence and will make
use of its services to color output just like on Unix-based platforms.
The colors used for syntax highlighting can be customized. Django The colors used for syntax highlighting can be customized. Django
ships with three color palettes: ships with three color palettes:
...@@ -1636,6 +1641,14 @@ would specify the use of all the colors in the light color palette, ...@@ -1636,6 +1641,14 @@ would specify the use of all the colors in the light color palette,
*except* for the colors for errors and notices which would be *except* for the colors for errors and notices which would be
overridden as specified. overridden as specified.
.. versionadded:: 1.7
Support for color-coded output from ``django-admin.py`` / ``manage.py``
utilities on Windows by relying on the ANSICON application was added in Django
1.7.
.. _ANSICON: http://adoxa.hostmyway.net/ansicon/
Bash completion Bash completion
--------------- ---------------
......
...@@ -415,6 +415,9 @@ Management Commands ...@@ -415,6 +415,9 @@ Management Commands
* All HTTP requests are logged to the console, including requests for static * All HTTP requests are logged to the console, including requests for static
files or ``favicon.ico`` that used to be filtered out. files or ``favicon.ico`` that used to be filtered out.
* Management commands can now produce syntax colored output under Windows if
the ANSICON third-party tool is installed and active.
Models Models
^^^^^^ ^^^^^^
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment