1
0
mirror of https://github.com/checktheroads/hyperglass synced 2024-05-11 05:55:08 +00:00
2020-07-19 14:42:54 -07:00

57 lines
1.3 KiB
Python

"""Utility functions for gathering system information."""
# Standard Library
import os
import platform
# Third Party
import psutil as _psutil
from cpuinfo import get_cpu_info as _get_cpu_info
# Project
from hyperglass.constants import __version__
def _cpu():
"""Construct CPU Information."""
cpu_info = _get_cpu_info()
brand = cpu_info.get("brand_raw", "")
cores_logical = _psutil.cpu_count()
cores_raw = _psutil.cpu_count(logical=False)
cpu_ghz = _psutil.cpu_freq().current / 1000
return (brand, cores_logical, cores_raw, cpu_ghz)
def _memory():
"""Construct RAM Information."""
mem_info = _psutil.virtual_memory()
total_gb = round(mem_info.total / 1e9, 2)
usage_percent = mem_info.percent
return (total_gb, usage_percent)
def _disk():
"""Construct Disk Information."""
disk_info = _psutil.disk_usage("/")
total_gb = round(disk_info.total / 1e9, 2)
usage_percent = disk_info.percent
return (total_gb, usage_percent)
def get_system_info():
"""Get system info."""
yield __version__
yield os.environ["hyperglass_directory"]
yield platform.python_version()
yield platform.platform()
for c in _cpu():
yield c
for m in _memory():
yield m
for d in _disk():
yield d