From 67e358c43eaaf6a7fefef478ef646f2de45d596e Mon Sep 17 00:00:00 2001 From: aristocratos Date: Sun, 21 Jun 2020 01:40:27 +0200 Subject: [PATCH] Psutil sensors safe fail --- bashtop | 32 +++++++++++++++++++++----------- src/bashtop.psutil.py | 32 +++++++++++++++++++++----------- 2 files changed, 42 insertions(+), 22 deletions(-) diff --git a/bashtop b/bashtop index 987bcf5..eb15467 100755 --- a/bashtop +++ b/bashtop @@ -4864,22 +4864,32 @@ def get_sensors(): temps = psutil.sensors_temperatures() if not temps: return - for name, entries in temps.items(): - print(name) - for entry in entries: - print(f'{entry.label or name}: {entry.current}°C (high = {entry.high}°C, crit = {entry.critical}°C)') - print() + try: + for name, entries in temps.items(): + print(name) + for entry in entries: + print(f'{entry.label or name}: {entry.current}°C (high = {entry.high}°C, crit = {entry.critical}°C)') + print() + except: + pass def get_sensors_check(): '''Check if get_sensors() output contains accepted CPU temperature values''' if not hasattr(psutil, "sensors_temperatures"): print("false"); return - temps = psutil.sensors_temperatures() + try: + temps = psutil.sensors_temperatures() + except: + pass + print("false"); return if not temps: print("false"); return - for _, entries in temps.items(): - for entry in entries: - if entry.label.startswith(('Package', 'Core 0', 'Tdie')): - print("true") - return + try: + for _, entries in temps.items(): + for entry in entries: + if entry.label.startswith(('Package', 'Core 0', 'Tdie')): + print("true") + return + except: + pass print("false") def get_cpu_name(): diff --git a/src/bashtop.psutil.py b/src/bashtop.psutil.py index 540d0aa..c492e87 100644 --- a/src/bashtop.psutil.py +++ b/src/bashtop.psutil.py @@ -51,22 +51,32 @@ def get_sensors(): temps = psutil.sensors_temperatures() if not temps: return - for name, entries in temps.items(): - print(name) - for entry in entries: - print(f'{entry.label or name}: {entry.current}°C (high = {entry.high}°C, crit = {entry.critical}°C)') - print() + try: + for name, entries in temps.items(): + print(name) + for entry in entries: + print(f'{entry.label or name}: {entry.current}°C (high = {entry.high}°C, crit = {entry.critical}°C)') + print() + except: + pass def get_sensors_check(): '''Check if get_sensors() output contains accepted CPU temperature values''' if not hasattr(psutil, "sensors_temperatures"): print("false"); return - temps = psutil.sensors_temperatures() + try: + temps = psutil.sensors_temperatures() + except: + pass + print("false"); return if not temps: print("false"); return - for _, entries in temps.items(): - for entry in entries: - if entry.label.startswith(('Package', 'Core 0', 'Tdie')): - print("true") - return + try: + for _, entries in temps.items(): + for entry in entries: + if entry.label.startswith(('Package', 'Core 0', 'Tdie')): + print("true") + return + except: + pass print("false") def get_cpu_name():