added cpu frequency module
This commit is contained in:
parent
588e8dfc88
commit
d723ae47e3
25
i3pystatus/cpu_freq.py
Normal file
25
i3pystatus/cpu_freq.py
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
from i3pystatus import IntervalModule
|
||||||
|
|
||||||
|
|
||||||
|
class CpuFreq(IntervalModule):
|
||||||
|
format = "{avg}"
|
||||||
|
settings = (
|
||||||
|
"format",
|
||||||
|
("color", "The text color"),
|
||||||
|
("average", "Show average for every core"),
|
||||||
|
("file", "override default path"),
|
||||||
|
)
|
||||||
|
|
||||||
|
file = '/proc/cpuinfo'
|
||||||
|
color = '#FFFFFF'
|
||||||
|
|
||||||
|
def run(self):
|
||||||
|
with open(self.file) as f:
|
||||||
|
mhz_values = [float(line.split(':')[1]) for line in f if line.startswith('cpu MHz')]
|
||||||
|
|
||||||
|
cdict = {"core{}".format(key): str(value) for key, value in enumerate(mhz_values)}
|
||||||
|
cdict['avg'] = str(sum(mhz_values) / len(mhz_values))
|
||||||
|
|
||||||
|
self.output = {
|
||||||
|
"full_text": self.format.format(**cdict),
|
||||||
|
}
|
4
tests/cpufreq01
Normal file
4
tests/cpufreq01
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
cpu MHz : 1240.382
|
||||||
|
cpu MHz : 1236.828
|
||||||
|
cpu MHz : 1203.007
|
||||||
|
cpu MHz : 1264.859
|
22
tests/test_cpu_freq.py
Normal file
22
tests/test_cpu_freq.py
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
#!/usr/bin/env python3
|
||||||
|
|
||||||
|
import os
|
||||||
|
from i3pystatus import cpu_freq
|
||||||
|
|
||||||
|
|
||||||
|
def cpu_freq_test(tfpath, tformat, expected):
|
||||||
|
cf = cpu_freq.CpuFreq(file=os.path.join(os.path.dirname(__file__), tfpath), format=tformat)
|
||||||
|
cf.run()
|
||||||
|
assert cf.output["full_text"] == expected
|
||||||
|
|
||||||
|
|
||||||
|
def test_basic():
|
||||||
|
cases = [
|
||||||
|
('cpufreq01', '1240.382', '1236.828', '1203.007', '1264.859', '1236.269'),
|
||||||
|
]
|
||||||
|
for path, core0, core1, core2, core3, avg in cases:
|
||||||
|
cpu_freq_test(path, "{avg}", avg)
|
||||||
|
cpu_freq_test(path, "{core0}", core0)
|
||||||
|
cpu_freq_test(path, "{core1}", core1)
|
||||||
|
cpu_freq_test(path, "{core2}", core2)
|
||||||
|
cpu_freq_test(path, "{core3}", core3)
|
Loading…
Reference in New Issue
Block a user