Psutil sensors safe fail

pull/153/head
aristocratos 2020-06-21 01:40:27 +02:00
parent 54ba9307bd
commit 67e358c43e
2 changed files with 42 additions and 22 deletions

10
bashtop
View File

@ -4864,22 +4864,32 @@ def get_sensors():
temps = psutil.sensors_temperatures() temps = psutil.sensors_temperatures()
if not temps: if not temps:
return return
try:
for name, entries in temps.items(): for name, entries in temps.items():
print(name) print(name)
for entry in entries: for entry in entries:
print(f'{entry.label or name}: {entry.current}°C (high = {entry.high}°C, crit = {entry.critical}°C)') print(f'{entry.label or name}: {entry.current}°C (high = {entry.high}°C, crit = {entry.critical}°C)')
print() print()
except:
pass
def get_sensors_check(): def get_sensors_check():
'''Check if get_sensors() output contains accepted CPU temperature values''' '''Check if get_sensors() output contains accepted CPU temperature values'''
if not hasattr(psutil, "sensors_temperatures"): print("false"); return if not hasattr(psutil, "sensors_temperatures"): print("false"); return
try:
temps = psutil.sensors_temperatures() temps = psutil.sensors_temperatures()
except:
pass
print("false"); return
if not temps: print("false"); return if not temps: print("false"); return
try:
for _, entries in temps.items(): for _, entries in temps.items():
for entry in entries: for entry in entries:
if entry.label.startswith(('Package', 'Core 0', 'Tdie')): if entry.label.startswith(('Package', 'Core 0', 'Tdie')):
print("true") print("true")
return return
except:
pass
print("false") print("false")
def get_cpu_name(): def get_cpu_name():

View File

@ -51,22 +51,32 @@ def get_sensors():
temps = psutil.sensors_temperatures() temps = psutil.sensors_temperatures()
if not temps: if not temps:
return return
try:
for name, entries in temps.items(): for name, entries in temps.items():
print(name) print(name)
for entry in entries: for entry in entries:
print(f'{entry.label or name}: {entry.current}°C (high = {entry.high}°C, crit = {entry.critical}°C)') print(f'{entry.label or name}: {entry.current}°C (high = {entry.high}°C, crit = {entry.critical}°C)')
print() print()
except:
pass
def get_sensors_check(): def get_sensors_check():
'''Check if get_sensors() output contains accepted CPU temperature values''' '''Check if get_sensors() output contains accepted CPU temperature values'''
if not hasattr(psutil, "sensors_temperatures"): print("false"); return if not hasattr(psutil, "sensors_temperatures"): print("false"); return
try:
temps = psutil.sensors_temperatures() temps = psutil.sensors_temperatures()
except:
pass
print("false"); return
if not temps: print("false"); return if not temps: print("false"); return
try:
for _, entries in temps.items(): for _, entries in temps.items():
for entry in entries: for entry in entries:
if entry.label.startswith(('Package', 'Core 0', 'Tdie')): if entry.label.startswith(('Package', 'Core 0', 'Tdie')):
print("true") print("true")
return return
except:
pass
print("false") print("false")
def get_cpu_name(): def get_cpu_name():