summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGiampaolo Rodola <g.rodola@gmail.com>2020-02-15 15:03:58 +0100
committerGiampaolo Rodola <g.rodola@gmail.com>2020-02-15 15:03:58 +0100
commit66f4f2c9e2916f030cf088c96e2d73160cdb1852 (patch)
tree23c69fb97ce670238acffc95fc761313dcf3e07c
parent3edeee83210ddd4e4262ea28756c0f7692970863 (diff)
downloadpsutil-66f4f2c9e2916f030cf088c96e2d73160cdb1852.tar.gz
move color utils in _common.py
-rw-r--r--psutil/_common.py30
-rwxr-xr-xpsutil/tests/runner.py31
2 files changed, 17 insertions, 44 deletions
diff --git a/psutil/_common.py b/psutil/_common.py
index 9306cd15..1f8900df 100644
--- a/psutil/_common.py
+++ b/psutil/_common.py
@@ -66,7 +66,7 @@ __all__ = [
'conn_tmap', 'deprecated_method', 'isfile_strict', 'memoize',
'parse_environ_block', 'path_exists_strict', 'usage_percent',
'supports_ipv6', 'sockfam_to_enum', 'socktype_to_enum', "wrap_numbers",
- 'bytes2human', 'conn_to_ntuple', 'hilite', 'debug',
+ 'bytes2human', 'conn_to_ntuple', 'hilite', 'term_supports_colors', 'debug',
]
@@ -757,33 +757,33 @@ else:
return s
-def _term_supports_colors(file=sys.stdout):
- if hasattr(_term_supports_colors, "ret"):
- return _term_supports_colors.ret
+@memoize
+def term_supports_colors(file=sys.stdout):
+ if os.name == 'nt':
+ return True # implemented via ctypes
try:
import curses
assert file.isatty()
curses.setupterm()
assert curses.tigetnum("colors") > 0
except Exception:
- _term_supports_colors.ret = False
return False
else:
- _term_supports_colors.ret = True
- return _term_supports_colors.ret
+ return True
-def hilite(s, ok=True, bold=False):
+def hilite(s, color="green", bold=False):
"""Return an highlighted version of 'string'."""
- if not _term_supports_colors():
+ if not term_supports_colors():
return s
attr = []
- if ok is None: # no color
- pass
- elif ok: # green
- attr.append('32')
- else: # red
- attr.append('31')
+ colors = dict(green='32', red='91', brown='33')
+ try:
+ color = colors[color]
+ except KeyError:
+ raise ValueError("invalid color %r; choose between %r" % (
+ list(colors.keys())))
+ attr.append(color)
if bold:
attr.append('1')
return '\x1b[%sm%s\x1b[0m' % (';'.join(attr), s)
diff --git a/psutil/tests/runner.py b/psutil/tests/runner.py
index aa81378a..bfa9c5fc 100755
--- a/psutil/tests/runner.py
+++ b/psutil/tests/runner.py
@@ -23,7 +23,9 @@ except ImportError:
ctypes = None
import psutil
+from psutil._common import hilite
from psutil._common import memoize
+from psutil._common import term_supports_colors
from psutil.tests import safe_rmpath
from psutil.tests import TOX
@@ -33,35 +35,6 @@ VERBOSITY = 1 if TOX else 2
FAILED_TESTS_FNAME = '.failed-tests.txt'
-def term_supports_colors(file=sys.stdout):
- if os.name == 'nt':
- return ctypes is not None
- try:
- import curses
- assert file.isatty()
- curses.setupterm()
- assert curses.tigetnum("colors") > 0
- except Exception:
- return False
- else:
- return True
-
-
-def hilite(s, color="green", bold=False):
- """Return an highlighted version of 'string'."""
- attr = []
- colors = dict(green='32', red='91', brown='33')
- try:
- color = colors[color]
- except KeyError:
- raise ValueError("invalid color %r; choose between %r" % (
- list(colors.keys())))
- attr.append(color)
- if bold:
- attr.append('1')
- return '\x1b[%sm%s\x1b[0m' % (';'.join(attr), s)
-
-
@memoize
def _stderr_handle():
GetStdHandle = ctypes.windll.Kernel32.GetStdHandle