aboutsummaryrefslogtreecommitdiff
path: root/catapult/common/py_vulcanize/third_party/rcssmin/_setup/py2/term/_term.py
diff options
context:
space:
mode:
Diffstat (limited to 'catapult/common/py_vulcanize/third_party/rcssmin/_setup/py2/term/_term.py')
-rw-r--r--catapult/common/py_vulcanize/third_party/rcssmin/_setup/py2/term/_term.py115
1 files changed, 115 insertions, 0 deletions
diff --git a/catapult/common/py_vulcanize/third_party/rcssmin/_setup/py2/term/_term.py b/catapult/common/py_vulcanize/third_party/rcssmin/_setup/py2/term/_term.py
new file mode 100644
index 00000000..72b727c1
--- /dev/null
+++ b/catapult/common/py_vulcanize/third_party/rcssmin/_setup/py2/term/_term.py
@@ -0,0 +1,115 @@
+# -*- coding: ascii -*-
+#
+# Copyright 2007, 2008, 2009, 2010, 2011
+# Andr\xe9 Malo or his licensors, as applicable
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+"""
+=================
+ Terminal writer
+=================
+"""
+__author__ = u"Andr\xe9 Malo"
+__docformat__ = "restructuredtext en"
+
+import sys as _sys
+
+
+class _INFO(dict):
+ """ Terminal info dict """
+
+ def __init__(self):
+ """ Initialization """
+ dict.__init__(self, {
+ 'NORMAL': '',
+ 'BOLD': '',
+ 'ERASE': '\n',
+ 'RED': '',
+ 'YELLOW': '',
+ 'GREEN': '',
+ })
+ try:
+ import curses as _curses
+ except ImportError:
+ # fixup if a submodule of curses failed.
+ if 'curses' in _sys.modules:
+ del _sys.modules['curses']
+ else:
+ try:
+ _curses.setupterm()
+ except (TypeError, _curses.error):
+ pass
+ else:
+ def make_color(color):
+ """ Make color control string """
+ seq = _curses.tigetstr('setaf')
+ if seq is not None:
+ # XXX may fail - need better logic
+ seq = seq.replace("%p1", "") % color
+ return seq
+
+ self['NORMAL'] = _curses.tigetstr('sgr0')
+ self['BOLD'] = _curses.tigetstr('bold')
+
+ erase = _curses.tigetstr('el1')
+ if erase is not None:
+ self['ERASE'] = erase + _curses.tigetstr('cr')
+
+ self['RED'] = make_color(_curses.COLOR_RED)
+ self['YELLOW'] = make_color(_curses.COLOR_YELLOW)
+ self['GREEN'] = make_color(_curses.COLOR_GREEN)
+
+ def __getitem__(self, key):
+ """ Deliver always """
+ dict.get(self, key) or ""
+
+
+def terminfo():
+ """ Get info singleton """
+ # pylint: disable = E1101, W0612
+ if terminfo.info is None:
+ terminfo.info = _INFO()
+ return terminfo.info
+terminfo.info = None
+
+
+def write(fmt, **kwargs):
+ """ Write stuff on the terminal """
+ parm = dict(terminfo())
+ parm.update(kwargs)
+ _sys.stdout.write(fmt % parm)
+ _sys.stdout.flush()
+
+
+def green(bmt, **kwargs):
+ """ Write something in green on screen """
+ announce("%%(GREEN)s%s%%(NORMAL)s" % bmt, **kwargs)
+
+
+def red(bmt, **kwargs):
+ """ Write something in red on the screen """
+ announce("%%(BOLD)s%%(RED)s%s%%(NORMAL)s" % bmt, **kwargs)
+
+
+def yellow(fmt, **kwargs):
+ """ Write something in yellow on the screen """
+ announce("%%(BOLD)s%%(YELLOW)s%s%%(NORMAL)s" % fmt, **kwargs)
+
+
+def announce(fmt, **kwargs):
+ """ Announce something """
+ write(fmt, **kwargs)
+ _sys.stdout.write("\n")
+ _sys.stdout.flush()
+
+