def _check_supported_version(current_version, supported_versions):
"""
The dna file contains supported Kalliope version for the module to install.
Check if supported versions are match the current installed version. If not, ask the user to confirm the
installation anyway
:param current_version: current version installed of Kalliope. E.g 0.4.0
:param supported_versions: list of supported version
:return: True if the version is supported or user has confirmed the installation
"""
logger.debug("[ResourcesManager] Current installed version of Kalliope: %s" % str(current_version))
logger.debug("[ResourcesManager] Module supported version: %s" % str(supported_versions))
supported_version_found = False
# Extract major version
match_current_version = re.search('^[\d]*[.][\d]*', current_version)
if match_current_version:
current_version = match_current_version.group(0)
for supported_version in supported_versions:
if version.parse(str(current_version)) == version.parse(str(supported_version)):
# we found the exact version
supported_version_found = True
break
if not supported_version_found:
# we ask the user if we want to install the module even if the version doesn't match
Utils.print_info("Current installed version of Kalliope: %s" % current_version)
Utils.print_info("Module supported versions: %s" % str(supported_versions))
Utils.print_warning("The neuron seems to be not supported by your current version of Kalliope")
supported_version_found = Utils.query_yes_no("install it anyway?")
logger.debug("[ResourcesManager] install it anyway user answer: %s" % supported_version_found)
logger.debug("[ResourcesManager] check_supported_version: %s" % str(supported_version_found))
return supported_version_found
评论列表
文章目录