from enum import Enum from abc import ABC, abstractmethod import psutil import pythonnet import os class Component(Enum): lin_cpu_amd = ("k10temp", "Tctl") lin_gpu_amd = ("amdgpu", "edge") lin_mobo_asus = ("asus_wmi_sensors", "Motherboard Temperature") class VitalsHelperInterface(ABC): @abstractmethod def get_temps(self, component: Component): """ Return Temperatures """ pass class VitalsHelperLinux(VitalsHelperInterface): def get_temps(self, component: Component): temps = psutil.sensors_temperatures() if component.value[0] in temps: for entry in temps[component.value[0]]: if entry.label == component.value[1]: return round(entry.current, 2) class VitalsHelperWindows(VitalsHelperInterface): def __init__(self): print(f"{self.__class__.__name__} is not Implemented") def get_temps(self, component: Component): return 0