From 71329cdb5d45cd42b62629385a53dddac3f8520c Mon Sep 17 00:00:00 2001 From: ZyX Date: Mon, 8 Apr 2013 08:04:22 +0400 Subject: [PATCH] Add gradient for cpu_load_percent Note: no changes to colorschemes: no cpu_load_percent in colorscheme --- powerline/segments/common.py | 10 +++++++++- tests/test_segments.py | 11 ++++++++++- 2 files changed, 19 insertions(+), 2 deletions(-) diff --git a/powerline/segments/common.py b/powerline/segments/common.py index bbc6fb11..a40ec75c 100644 --- a/powerline/segments/common.py +++ b/powerline/segments/common.py @@ -572,7 +572,13 @@ try: self.exception('Exception while calculating cpu_percent: {0}', str(e)) def render(self, cpu_percent, format='{0:.0f}%', **kwargs): - return format.format(cpu_percent) + if not cpu_percent: + return None + return [{ + 'contents': format.format(cpu_percent), + 'gradient_level': cpu_percent, + 'highlight_group': ['cpu_load_percent_gradient', 'cpu_load_percent'], + }] except ImportError: def _get_bytes(interface): # NOQA with open('/sys/class/net/{interface}/statistics/rx_bytes'.format(interface=interface), 'rb') as file_obj: @@ -618,6 +624,8 @@ Requires the ``psutil`` module. :param str format: Output format. Accepts measured CPU load as the first argument. + +Highlight groups used: ``cpu_load_percent_gradient`` (gradient) or ``cpu_load_percent``. ''') diff --git a/tests/test_segments.py b/tests/test_segments.py index ca16eb93..18cdc65e 100644 --- a/tests/test_segments.py +++ b/tests/test_segments.py @@ -244,7 +244,16 @@ class TestCommon(TestCase): def test_cpu_load_percent(self): pl = Pl() with replace_module_module(common, 'psutil', cpu_percent=lambda **kwargs: 52.3): - self.assertEqual(common.cpu_load_percent(pl=pl), '52%') + self.assertEqual(common.cpu_load_percent(pl=pl), [{ + 'contents': '52%', + 'gradient_level': 52.3, + 'highlight_group': ['cpu_load_percent_gradient', 'cpu_load_percent'], + }]) + self.assertEqual(common.cpu_load_percent(pl=pl, format='{0:.1f}%'), [{ + 'contents': '52.3%', + 'gradient_level': 52.3, + 'highlight_group': ['cpu_load_percent_gradient', 'cpu_load_percent'], + }]) def test_network_load(self): from time import sleep