Source code for core.version
# ../core/version.py
"""Provides the Source.Python version."""
# =============================================================================
# >> IMPORTS
# =============================================================================
# Python Imports
from urllib.request import urlopen
# Source.Python Imports
# Cvars
from cvars.public import PublicConVar
# =============================================================================
# >> ALL DECLARATION
# =============================================================================
__all__ = ('VERSION',
'GIT_COMMIT',
'get_last_successful_build_number',
'is_unversioned',
)
# =============================================================================
# >> CONSTANTS
# =============================================================================
#: Version of the Source.Python intallation.
VERSION = 721
#: The Github commit this Source.Python version was built with.
GIT_COMMIT = 'f129713a17014795de445ff8fa782e079c76ef4e'
LAST_SUCCESSFUL_BUILD_NUMBER_URL = (
'http://downloads.sourcepython.com/version.txt')
# =============================================================================
# >> GLOBAL VARIABLES
# =============================================================================
_sp_version = PublicConVar('sp_version', str(VERSION), 'Source.Python version')
# =============================================================================
# >> FUNCTIONS
# =============================================================================
[docs]def get_last_successful_build_number(timeout=3):
"""Return the latest successful build number as an integer.
:param float timeout:
Number of seconds that need to pass until a timeout occurs.
:rtype: int
"""
with urlopen(LAST_SUCCESSFUL_BUILD_NUMBER_URL, timeout=timeout) as url:
return int(url.read().decode('utf-8'))
[docs]def is_unversioned():
"""Return ``True`` if this Source.Python installation has no version.
This can happen in multiple cases:
* This is an unofficial build (not a build from the build server).
* The Python files have been updated directly from the repository.
:rtype: bool
"""
return VERSION is None