Spaces:
Runtime error
Runtime error
| import psutil | |
| import platform | |
| import getpass | |
| import datetime | |
| from pynvml import * | |
| from pprint import pprint | |
| def physical_system_time(): | |
| return {"system_time": datetime.datetime.fromtimestamp(psutil.boot_time()).strftime("%Y-%m-%d %H:%M:%S")} | |
| def physical_username(): | |
| return { | |
| "system_user": getpass.getuser() | |
| } | |
| def physical_platfrom_system(): | |
| u_name = platform.uname() | |
| return {"system_name": u_name.system, "system_version": u_name.version} | |
| def physical_cpu(): | |
| return {"system_cpu_count": psutil.cpu_count(logical=False)} | |
| def physical_memory(): | |
| # return round(psutil.virtual_memory().total / (1024.0 * 1024.0 * 1024.0), 2) | |
| return {"system_memory": round(psutil.virtual_memory().total, 2)} | |
| def physical_hard_disk(): | |
| result = [] | |
| for disk_partition in psutil.disk_partitions(): | |
| o_usage = psutil.disk_usage(disk_partition.device) | |
| result.append( | |
| { | |
| "device": disk_partition.device, | |
| "fstype":disk_partition.fstype, | |
| "opts": disk_partition.opts, | |
| "total": o_usage.total, | |
| } | |
| ) | |
| return {"system_hard_disk": result} | |
| def nvidia_info(): | |
| nvidia_dict = { | |
| "state": True, | |
| "nvidia_version": "", | |
| "nvidia_count": 0, | |
| "gpus": [] | |
| } | |
| try: | |
| nvmlInit() | |
| nvidia_dict["nvidia_version"] = nvmlSystemGetDriverVersion() | |
| nvidia_dict["nvidia_count"] = nvmlDeviceGetCount() | |
| for i in range(nvidia_dict["nvidia_count"]): | |
| handle = nvmlDeviceGetHandleByIndex(i) | |
| memory_info = nvmlDeviceGetMemoryInfo(handle) | |
| gpu = { | |
| "gpu_name": nvmlDeviceGetName(handle), | |
| "total": memory_info.total, | |
| "free": memory_info.free, | |
| "used": memory_info.used, | |
| "temperature": f"{nvmlDeviceGetTemperature(handle, 0)}℃", | |
| "powerStatus": nvmlDeviceGetPowerState(handle) | |
| } | |
| nvidia_dict['gpus'].append(gpu) | |
| except NVMLError as e1: | |
| nvidia_dict["state"] = False | |
| print(f'nvidia_error_1_{e1}') | |
| except Exception as e2: | |
| nvidia_dict["state"] = False | |
| print(f'nvidia_erro_2_{e2}') | |
| finally: | |
| try: | |
| nvmlShutdown() | |
| except: | |
| pass | |
| return nvidia_dict | |
| def merge(info_list): | |
| data = {} | |
| for item in info_list: | |
| data.update( | |
| item() | |
| ) | |
| return data | |
| def computer_info(): | |
| data = merge( | |
| [ | |
| physical_system_time, | |
| physical_username, | |
| physical_platfrom_system, | |
| physical_cpu, | |
| physical_memory, | |
| # physical_hard_disk, | |
| nvidia_info | |
| ] | |
| ) | |
| pprint(data) | |