diff options
author | Giampaolo Rodola <g.rodola@gmail.com> | 2020-02-15 15:03:58 +0100 |
---|---|---|
committer | Giampaolo Rodola <g.rodola@gmail.com> | 2020-02-15 15:03:58 +0100 |
commit | 66f4f2c9e2916f030cf088c96e2d73160cdb1852 (patch) | |
tree | 23c69fb97ce670238acffc95fc761313dcf3e07c | |
parent | 3edeee83210ddd4e4262ea28756c0f7692970863 (diff) | |
download | psutil-66f4f2c9e2916f030cf088c96e2d73160cdb1852.tar.gz |
move color utils in _common.py
-rw-r--r-- | psutil/_common.py | 30 | ||||
-rwxr-xr-x | psutil/tests/runner.py | 31 |
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 |