Get the Windows OS version running on the machine.
    
    Params:
        None

    Returns:
        The Windows OS version running on the machine (comparables with the values list in the class).

def get_version():
    """
    Get the Windows OS version running on the machine.
    
    Params:
        None

    Returns:
        The Windows OS version running on the machine (comparables with the values list in the class).
    """
    # Other OS check
    if not 'win' in sys.platform:
        return NO_WIN
    # Get infos
    win_ver = sys.getwindowsversion()
    try:
        # Python 3.6.x or upper -> Use 'platform_version' attribute
        major, minor, build = win_ver.platform_version
    except AttributeError:
        if sys.version_info < (3, 0):
            # Python 2.7.x -> Use 'platform' module to ensure the correct values (seems that Win 10 is not correctly detected)
            from platform import _get_real_winver
            major, minor, build = _get_real_winver(win_ver.major, win_ver.minor, win_ver.build)
            major, minor, build = int(major), int(minor), int(build) # 'long' to 'int'
        else:
            # Python 3.0.x - 3.5.x -> Keep 'sys.getwindowsversion()'' values
            major, minor, build = win_ver.major, win_ver.minor, win_ver.build
    # Check is is server or not (it works only on Python 2.7.x or newer)
    try:
        is_server = 1 if win_ver.product_type == 3 else 0
    except AttributeError:
        is_server = 0
    # Parse Service Pack version (or Build number)
    try:
        if major == 10:
            # The OS is Windows 10 or Windows Server 2016,
            # so the service pack version is instead the Build number
            sp_ver = build
        else:
            sp_ver = win_ver.service_pack_major or 0
    except AttributeError:
        try:
            sp_ver = int(win_ver.service_pack.rsplit(' ', 1))
        except (IndexError, ValueError):
            sp_ver = 0
    # Return the final version data
    return (major, minor, sp_ver, is_server)