core/homeassistant/helpers/system_info.py

37 lines
1.2 KiB
Python
Raw Normal View History

"""Helper to gather system info."""
import os
import platform
from typing import Dict
from homeassistant.const import __version__ as current_version
from homeassistant.loader import bind_hass
from homeassistant.util.package import is_virtual_env
from .typing import HomeAssistantType
@bind_hass
async def async_get_system_info(hass: HomeAssistantType) -> Dict:
"""Return info about the system."""
info_object = {
'version': current_version,
'dev': 'dev' in current_version,
'hassio': hass.components.hassio.is_hassio(),
'virtualenv': is_virtual_env(),
'python_version': platform.python_version(),
'docker': False,
'arch': platform.machine(),
'timezone': str(hass.config.time_zone),
'os_name': platform.system(),
}
if platform.system() == 'Windows':
info_object['os_version'] = platform.win32_ver()[0]
elif platform.system() == 'Darwin':
info_object['os_version'] = platform.mac_ver()[0]
elif platform.system() == 'FreeBSD':
info_object['os_version'] = platform.release()
elif platform.system() == 'Linux':
info_object['docker'] = os.path.isfile('/.dockerenv')
return info_object