Statistics
| Branch: | Tag: | Revision:

root / qa / qa_logging.py @ bfca72bc

History | View | Annotate | Download (1.8 kB)

1 6d96ede4 Hrvoje Ribicic
#
2 6d96ede4 Hrvoje Ribicic
#
3 6d96ede4 Hrvoje Ribicic
4 6d96ede4 Hrvoje Ribicic
# Copyright (C) 2014 Google Inc.
5 6d96ede4 Hrvoje Ribicic
#
6 6d96ede4 Hrvoje Ribicic
# This program is free software; you can redistribute it and/or modify
7 6d96ede4 Hrvoje Ribicic
# it under the terms of the GNU General Public License as published by
8 6d96ede4 Hrvoje Ribicic
# the Free Software Foundation; either version 2 of the License, or
9 6d96ede4 Hrvoje Ribicic
# (at your option) any later version.
10 6d96ede4 Hrvoje Ribicic
#
11 6d96ede4 Hrvoje Ribicic
# This program is distributed in the hope that it will be useful, but
12 6d96ede4 Hrvoje Ribicic
# WITHOUT ANY WARRANTY; without even the implied warranty of
13 6d96ede4 Hrvoje Ribicic
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
14 6d96ede4 Hrvoje Ribicic
# General Public License for more details.
15 6d96ede4 Hrvoje Ribicic
#
16 6d96ede4 Hrvoje Ribicic
# You should have received a copy of the GNU General Public License
17 6d96ede4 Hrvoje Ribicic
# along with this program; if not, write to the Free Software
18 6d96ede4 Hrvoje Ribicic
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
19 6d96ede4 Hrvoje Ribicic
# 02110-1301, USA.
20 6d96ede4 Hrvoje Ribicic
21 6d96ede4 Hrvoje Ribicic
""" Handles the logging of messages with appropriate coloring.
22 6d96ede4 Hrvoje Ribicic

23 6d96ede4 Hrvoje Ribicic
"""
24 6d96ede4 Hrvoje Ribicic
25 6d96ede4 Hrvoje Ribicic
import sys
26 6d96ede4 Hrvoje Ribicic
27 6d96ede4 Hrvoje Ribicic
28 6d96ede4 Hrvoje Ribicic
_INFO_SEQ = None
29 6d96ede4 Hrvoje Ribicic
_WARNING_SEQ = None
30 6d96ede4 Hrvoje Ribicic
_ERROR_SEQ = None
31 6d96ede4 Hrvoje Ribicic
_RESET_SEQ = None
32 6d96ede4 Hrvoje Ribicic
33 6d96ede4 Hrvoje Ribicic
34 6d96ede4 Hrvoje Ribicic
def _SetupColours():
35 6d96ede4 Hrvoje Ribicic
  """Initializes the colour constants.
36 6d96ede4 Hrvoje Ribicic

37 6d96ede4 Hrvoje Ribicic
  """
38 6d96ede4 Hrvoje Ribicic
  # pylint: disable=W0603
39 6d96ede4 Hrvoje Ribicic
  # due to global usage
40 6d96ede4 Hrvoje Ribicic
  global _INFO_SEQ, _WARNING_SEQ, _ERROR_SEQ, _RESET_SEQ
41 6d96ede4 Hrvoje Ribicic
42 6d96ede4 Hrvoje Ribicic
  # Don't use colours if stdout isn't a terminal
43 6d96ede4 Hrvoje Ribicic
  if not sys.stdout.isatty():
44 6d96ede4 Hrvoje Ribicic
    return
45 6d96ede4 Hrvoje Ribicic
46 6d96ede4 Hrvoje Ribicic
  try:
47 6d96ede4 Hrvoje Ribicic
    import curses
48 6d96ede4 Hrvoje Ribicic
  except ImportError:
49 6d96ede4 Hrvoje Ribicic
    # Don't use colours if curses module can't be imported
50 6d96ede4 Hrvoje Ribicic
    return
51 6d96ede4 Hrvoje Ribicic
52 6d96ede4 Hrvoje Ribicic
  curses.setupterm()
53 6d96ede4 Hrvoje Ribicic
54 6d96ede4 Hrvoje Ribicic
  _RESET_SEQ = curses.tigetstr("op")
55 6d96ede4 Hrvoje Ribicic
56 6d96ede4 Hrvoje Ribicic
  setaf = curses.tigetstr("setaf")
57 6d96ede4 Hrvoje Ribicic
  _INFO_SEQ = curses.tparm(setaf, curses.COLOR_GREEN)
58 6d96ede4 Hrvoje Ribicic
  _WARNING_SEQ = curses.tparm(setaf, curses.COLOR_YELLOW)
59 6d96ede4 Hrvoje Ribicic
  _ERROR_SEQ = curses.tparm(setaf, curses.COLOR_RED)
60 6d96ede4 Hrvoje Ribicic
61 6d96ede4 Hrvoje Ribicic
62 6d96ede4 Hrvoje Ribicic
_SetupColours()
63 6d96ede4 Hrvoje Ribicic
64 6d96ede4 Hrvoje Ribicic
65 6d96ede4 Hrvoje Ribicic
def _FormatWithColor(text, seq):
66 6d96ede4 Hrvoje Ribicic
  if not seq:
67 6d96ede4 Hrvoje Ribicic
    return text
68 6d96ede4 Hrvoje Ribicic
  return "%s%s%s" % (seq, text, _RESET_SEQ)
69 6d96ede4 Hrvoje Ribicic
70 6d96ede4 Hrvoje Ribicic
71 6d96ede4 Hrvoje Ribicic
FormatWarning = lambda text: _FormatWithColor(text, _WARNING_SEQ)
72 6d96ede4 Hrvoje Ribicic
FormatError = lambda text: _FormatWithColor(text, _ERROR_SEQ)
73 6d96ede4 Hrvoje Ribicic
FormatInfo = lambda text: _FormatWithColor(text, _INFO_SEQ)