From 20c1782f7865b5f96b1650a65097a0e2bdd1241e Mon Sep 17 00:00:00 2001 From: Mattias Andrée Date: Fri, 7 Mar 2014 00:16:52 +0100 Subject: fix and demo cpuonline MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Mattias Andrée --- examples/plugins/cpuonline | 21 +++++++++++++++++++++ src/plugins/cpuonline.py | 4 +++- src/util.py | 2 +- 3 files changed, 25 insertions(+), 2 deletions(-) create mode 100644 examples/plugins/cpuonline diff --git a/examples/plugins/cpuonline b/examples/plugins/cpuonline new file mode 100644 index 0000000..1796b22 --- /dev/null +++ b/examples/plugins/cpuonline @@ -0,0 +1,21 @@ +# -*- python -*- + +# A xpybar configuration example testing the features of plugins.chase + +import time +import threading + +from plugins.cpuonline import CPUOnline + + +OUTPUT, HEIGHT, YPOS, TOP = 0, 12, 24, True + + +def redraw(): + cpu = CPUOnline() + s = lambda cpus : ', '.join([str(i) for i in cpus]) + text = 'Online: %s │ Offline: %s │ Present: %s │ Possible: %s' + text %= s(cpu.online), s(cpu.offline), s(cpu.present), s(cpu.possible) + bar.clear() + bar.draw_coloured_text(0, 10, 0, 2, text) + diff --git a/src/plugins/cpuonline.py b/src/plugins/cpuonline.py index 75e8bed..8b42f66 100644 --- a/src/plugins/cpuonline.py +++ b/src/plugins/cpuonline.py @@ -45,8 +45,10 @@ class CPUOnline: for filename in ('offline', 'online', 'possible', 'present'): with open('/sys/devices/system/cpu/online', 'rb') as file: data.append(file.read()) + data = [x.decode('utf-8', 'replace').replace('\n', ' ').replace(',', ' ') for x in data] - data = [reduce(lambda x, y : x + y, map(expand, x.split(' '))) for x in data] + data = [map(expand, filter(lambda item : not item == '', x.split(' '))) for x in data] + data = [reduce(lambda x, y : x + y, list(x)) for x in data] (self.offline, self.online, self.possible, self.present) = data diff --git a/src/util.py b/src/util.py index 9c8c9d5..d42515b 100644 --- a/src/util.py +++ b/src/util.py @@ -98,7 +98,7 @@ def reduce(f, items): @return ¿E? The output ''' if len(items) < 2: - return items + return [] if len(items) == 0 else items[0] rc = items[0] for i in range(1, len(items)): rc = f(rc, items[i]) -- cgit v1.2.3-70-g09d2