mirror of
https://github.com/checktheroads/hyperglass
synced 2024-05-11 05:55:08 +00:00
57 lines
1.3 KiB
Python
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
|