From d9e3bd521bafa7b642e83a95c791c959e35cab70 Mon Sep 17 00:00:00 2001 From: adrianciu Date: Thu, 21 Nov 2024 17:40:48 +0200 Subject: [PATCH] TVB-3110: fixed validating library versions like (8, 6, 0) --- .../third_party_licenses/build_licenses.py | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/tvb_build/tvb_build/third_party_licenses/build_licenses.py b/tvb_build/tvb_build/third_party_licenses/build_licenses.py index c642e80622..75975610fd 100644 --- a/tvb_build/tvb_build/third_party_licenses/build_licenses.py +++ b/tvb_build/tvb_build/third_party_licenses/build_licenses.py @@ -78,6 +78,20 @@ \n\n\n" +def parse_versions(str_versions: str): + versions = str_versions[1:-1].split(',') + parsed_versions = [] + temp = '' + paren_level = 0 + for version in versions: + paren_level += version.count('(') - version.count(')') + temp = temp + ',' + version if temp else version + if paren_level == 0: + parsed_versions.append(temp) + temp = '' + return parsed_versions + + def _invalid_version(expected, actual): """ Check if current found version of 3rd party library is @@ -86,7 +100,7 @@ def _invalid_version(expected, actual): if actual.startswith(expected): return False if expected.startswith('['): - expected = expected[1:-1].split(',') + expected = parse_versions(expected) return actual not in expected return True @@ -169,7 +183,7 @@ def generate_artefact(root_folder_to_introspect, excludes=None, actual_libs=None # Run stand-alone. all_libs = parser.read_default() to_exclude = [] - for libname, libattr in all_libs.iteritems(): + for libname, libattr in all_libs.items(): if 'Desktop' in libattr["description"] or 'unused' in libattr['env']: to_exclude.append(libname) all_libs[libname] = libattr["version"]