def get_system_info()

in mozregression/telemetry.py [0:0]


def get_system_info():
    """Return a dictionary with various information about the system."""
    UNKNOWN = "unknown"
    info = {
        "windows_version": None,
        "mac_version": None,
        "linux_version": None,
        "linux_distro": None,
        "python_version": None,
    }

    if mozinfo.os == "mac":
        try:
            # Fetch the "release" from tuple containing macOS version information.
            # See https://docs.python.org/3/library/platform.html#macos-platform.
            info["mac_version"] = platform.mac_ver()[0]
        except (AttributeError, IndexError):
            info["mac_version"] = UNKNOWN
    elif mozinfo.os == "win":
        try:
            # Fetch "version" from tuple containing Windows version information.
            # See https://docs.python.org/3/library/platform.html#windows-platform.
            info["windows_version"] = platform.win32_ver()[1]
        except (AttributeError, IndexError):
            info["windows_version"] = UNKNOWN
    elif mozinfo.os == "linux":
        distro_info = distro.info()
        try:
            info["linux_version"] = distro_info["version"]
            info["linux_distro"] = distro_info["id"]
        except KeyError:
            info["linux_version"] = UNKNOWN
            info["linux_distro"] = UNKNOWN
    info["python_version"] = platform.python_version()
    return info