# import clr  # from pythonnet
# import os
# import sys

# # Path to the LibreHardwareMonitor DLL
# dll_path = r"LibreHardwareMonitorLib.dll"
# sys.path.append(os.path.dirname(dll_path))
# clr.AddReference("LibreHardwareMonitorLib")

# from LibreHardwareMonitor.Hardware import Computer

# def get_cpu_temperature():
#     computer = Computer()
#     computer.IsCpuEnabled = True
#     computer.Open()

#     temperatures = []
#     print(computer.Hardware.CPU)
#     return 80

#     for hardware in computer.Hardware:
#         if hardware.HardwareType.ToString() == "Cpu":
#             hardware.Update()
#             for sensor in hardware.Sensors:
#                 if sensor.SensorType.ToString() == "Temperature":
#                     print(f"{sensor.Name}: {sensor.Value} °C")
#                     temperatures.append(sensor.Value)

#     computer.Close()
#     return max(temperatures) if temperatures else None

# temp = get_cpu_temperature()
# if temp:
#     print(f"Highest CPU temperature: {temp} °C")
# else:
#     print("No CPU temperatures found.")
from PyLibreHardwareMonitor import Computer


# Get system information, automatically refreshed with each call.
def get_cpu_data( ):
    computer = Computer()

    cpu_temps = { }
    cpu_usage = { }
    cpu_combined = { }

    for mobo in computer.motherboard:
        print(computer.motherboard[mobo])

    for cpu in computer.cpu:
        #print(computer.cpu[cpu])
        for core in computer.cpu[cpu]['Load']:
            #print(core)
            if core.find("CPU Core #") != -1 and len(core) <= len("CPU Core #10"):
                cpu_combined[core] = {'load' : computer.cpu[cpu]['Load'][core]}
        for core in computer.cpu[cpu]['Temperature']:
            #print(core, computer.cpu[cpu]['Temperature'][core])
            if core.find("CPU Core #") != -1 and len(core) <= len("CPU Core #10"):
                cpu_combined[core]['temp'] = computer.cpu[cpu]['Temperature'][core]
    return cpu_combined #{'Temperatures' : cpu_temps, 'Loads' : cpu_usage}

print(get_cpu_data( ))