[Lldb-commits] [lldb] [lldb] Migrate distutils.version.LooseVersion to packaging.LooseVersion (PR #82066)
https://github.com/JDevlieghere updated https://github.com/llvm/llvm-project/pull/82066 >From dad7c2a49f118d11b213b9691c8b01733040a510 Mon Sep 17 00:00:00 2001 From: Jonas Devlieghere Date: Fri, 16 Feb 2024 14:59:15 -0800 Subject: [PATCH] [lldb] Migrate distutils.version.LooseVersion to packaging The distutils package has been deprecated and was removed from Python 3.12. The migration page [1] advises to use the packaging module instead. Since Python 3.6 that's vendored into pkg_resources. [1] https://peps.python.org/pep-0632/#migration-advice --- .../Python/lldbsuite/test/decorators.py | 12 --- .../Python/lldbsuite/test/lldbplatformutil.py | 18 --- lldb/test/API/sanity/TestSettingSkipping.py | 32 +-- .../lldb-server/TestAppleSimulatorOSType.py | 4 +-- lldb/test/Shell/helper/build.py | 4 +-- 5 files changed, 40 insertions(+), 30 deletions(-) diff --git a/lldb/packages/Python/lldbsuite/test/decorators.py b/lldb/packages/Python/lldbsuite/test/decorators.py index a5d7a7a25879df..b691f82b90652c 100644 --- a/lldb/packages/Python/lldbsuite/test/decorators.py +++ b/lldb/packages/Python/lldbsuite/test/decorators.py @@ -1,6 +1,6 @@ # System modules -from distutils.version import LooseVersion from functools import wraps +from pkg_resources import packaging import ctypes import locale import os @@ -65,10 +65,10 @@ def fn_neq(x, y): ">=": fn_geq, "<=": fn_leq, } -expected_str = ".".join([str(x) for x in expected]) -actual_str = ".".join([str(x) for x in actual]) -return op_lookup[comparison](LooseVersion(actual_str), LooseVersion(expected_str)) +return op_lookup[comparison]( +packaging.version.parse(actual), packaging.version.parse(expected) +) def _match_decorator_property(expected, actual): @@ -238,7 +238,9 @@ def fn(actual_debug_info=None): ) ) skip_for_py_version = (py_version is None) or _check_expected_version( -py_version[0], py_version[1], sys.version_info +py_version[0], +py_version[1], +"{}.{}".format(sys.version_info.major, sys.version_info.minor), ) skip_for_macos_version = (macos_version is None) or ( (platform.mac_ver()[0] != "") diff --git a/lldb/packages/Python/lldbsuite/test/lldbplatformutil.py b/lldb/packages/Python/lldbsuite/test/lldbplatformutil.py index bd92d03e0e2212..f159e53a98429e 100644 --- a/lldb/packages/Python/lldbsuite/test/lldbplatformutil.py +++ b/lldb/packages/Python/lldbsuite/test/lldbplatformutil.py @@ -7,8 +7,8 @@ import subprocess import sys import os -from distutils.version import LooseVersion from urllib.parse import urlparse +from pkg_resources import packaging # LLDB modules import lldb @@ -308,13 +308,21 @@ def expectedCompilerVersion(compiler_version): return operator in [">", ">=", "!", "!=", "not"] if operator == ">": -return LooseVersion(test_compiler_version) > LooseVersion(version) +return packaging.version.parse(test_compiler_version) > packaging.version.parse( +version +) if operator == ">=" or operator == "=>": -return LooseVersion(test_compiler_version) >= LooseVersion(version) +return packaging.version.parse( +test_compiler_version +) >= packaging.version.parse(version) if operator == "<": -return LooseVersion(test_compiler_version) < LooseVersion(version) +return packaging.version.parse(test_compiler_version) < packaging.version.parse( +version +) if operator == "<=" or operator == "=<": -return LooseVersion(test_compiler_version) <= LooseVersion(version) +return packaging.version.parse( +test_compiler_version +) <= packaging.version.parse(version) if operator == "!=" or operator == "!" or operator == "not": return str(version) not in str(test_compiler_version) return str(version) in str(test_compiler_version) diff --git a/lldb/test/API/sanity/TestSettingSkipping.py b/lldb/test/API/sanity/TestSettingSkipping.py index 5f58ec2638456d..369948b2b49463 100644 --- a/lldb/test/API/sanity/TestSettingSkipping.py +++ b/lldb/test/API/sanity/TestSettingSkipping.py @@ -1,8 +1,7 @@ """ -This is a sanity check that verifies that test can be sklipped based on settings. +This is a sanity check that verifies that test can be skipped based on settings. """ - import lldb from lldbsuite.test.lldbtest import * from lldbsuite.test.decorators import * @@ -10,24 +9,25 @@ class SettingSkipSanityTestCase(TestBase): NO_DEBUG_INFO_TESTCASE = True +REAL_PYTHON_VERSION = "3.0" +FUTURE_PYTHON_VERSION = "4.0" -@skipIf(py_version=(">=", (3, 0))) +@skipIf(py_version=(">=", REAL_PYTHON_VERSION)) def testSkip(self): -"""This setting is on by default""" -self.assertTrue(False, "This test should not run!") -
[Lldb-commits] [lldb] [lldb] Migrate distutils.version.LooseVersion to packaging.LooseVersion (PR #82066)
llvmbot wrote: @llvm/pr-subscribers-lldb Author: Jonas Devlieghere (JDevlieghere) Changes The distutils package has been deprecated and was removed from Python 3.12. The migration page [1] advises to use the packaging module instead. Since Python 3.6 that's vendored into pkg_resources. [1] https://peps.python.org/pep-0632/#migration-advice --- Full diff: https://github.com/llvm/llvm-project/pull/82066.diff 5 Files Affected: - (modified) lldb/packages/Python/lldbsuite/test/decorators.py (+7-5) - (modified) lldb/packages/Python/lldbsuite/test/lldbplatformutil.py (+13-5) - (modified) lldb/test/API/sanity/TestSettingSkipping.py (+16-16) - (modified) lldb/test/API/tools/lldb-server/TestAppleSimulatorOSType.py (+2-2) - (modified) lldb/test/Shell/helper/build.py (+2-2) ``diff diff --git a/lldb/packages/Python/lldbsuite/test/decorators.py b/lldb/packages/Python/lldbsuite/test/decorators.py index a5d7a7a25879df..b691f82b90652c 100644 --- a/lldb/packages/Python/lldbsuite/test/decorators.py +++ b/lldb/packages/Python/lldbsuite/test/decorators.py @@ -1,6 +1,6 @@ # System modules -from distutils.version import LooseVersion from functools import wraps +from pkg_resources import packaging import ctypes import locale import os @@ -65,10 +65,10 @@ def fn_neq(x, y): ">=": fn_geq, "<=": fn_leq, } -expected_str = ".".join([str(x) for x in expected]) -actual_str = ".".join([str(x) for x in actual]) -return op_lookup[comparison](LooseVersion(actual_str), LooseVersion(expected_str)) +return op_lookup[comparison]( +packaging.version.parse(actual), packaging.version.parse(expected) +) def _match_decorator_property(expected, actual): @@ -238,7 +238,9 @@ def fn(actual_debug_info=None): ) ) skip_for_py_version = (py_version is None) or _check_expected_version( -py_version[0], py_version[1], sys.version_info +py_version[0], +py_version[1], +"{}.{}".format(sys.version_info.major, sys.version_info.minor), ) skip_for_macos_version = (macos_version is None) or ( (platform.mac_ver()[0] != "") diff --git a/lldb/packages/Python/lldbsuite/test/lldbplatformutil.py b/lldb/packages/Python/lldbsuite/test/lldbplatformutil.py index bd92d03e0e2212..f159e53a98429e 100644 --- a/lldb/packages/Python/lldbsuite/test/lldbplatformutil.py +++ b/lldb/packages/Python/lldbsuite/test/lldbplatformutil.py @@ -7,8 +7,8 @@ import subprocess import sys import os -from distutils.version import LooseVersion from urllib.parse import urlparse +from pkg_resources import packaging # LLDB modules import lldb @@ -308,13 +308,21 @@ def expectedCompilerVersion(compiler_version): return operator in [">", ">=", "!", "!=", "not"] if operator == ">": -return LooseVersion(test_compiler_version) > LooseVersion(version) +return packaging.version.parse(test_compiler_version) > packaging.version.parse( +version +) if operator == ">=" or operator == "=>": -return LooseVersion(test_compiler_version) >= LooseVersion(version) +return packaging.version.parse( +test_compiler_version +) >= packaging.version.parse(version) if operator == "<": -return LooseVersion(test_compiler_version) < LooseVersion(version) +return packaging.version.parse(test_compiler_version) < packaging.version.parse( +version +) if operator == "<=" or operator == "=<": -return LooseVersion(test_compiler_version) <= LooseVersion(version) +return packaging.version.parse( +test_compiler_version +) <= packaging.version.parse(version) if operator == "!=" or operator == "!" or operator == "not": return str(version) not in str(test_compiler_version) return str(version) in str(test_compiler_version) diff --git a/lldb/test/API/sanity/TestSettingSkipping.py b/lldb/test/API/sanity/TestSettingSkipping.py index 5f58ec2638456d..369948b2b49463 100644 --- a/lldb/test/API/sanity/TestSettingSkipping.py +++ b/lldb/test/API/sanity/TestSettingSkipping.py @@ -1,8 +1,7 @@ """ -This is a sanity check that verifies that test can be sklipped based on settings. +This is a sanity check that verifies that test can be skipped based on settings. """ - import lldb from lldbsuite.test.lldbtest import * from lldbsuite.test.decorators import * @@ -10,24 +9,25 @@ class SettingSkipSanityTestCase(TestBase): NO_DEBUG_INFO_TESTCASE = True +REAL_PYTHON_VERSION = "3.0" +FUTURE_PYTHON_VERSION = "4.0" -@skipIf(py_version=(">=", (3, 0))) +@skipIf(py_version=(">=", REAL_PYTHON_VERSION)) def testSkip(self): -"""This setting is on by default""" -self.assertTrue(False, "This test should not run!") - -@skipIf(py_version=("<", (3, 0))) -def testNoMatch(self): -self.assertTrue(True, "This test
[Lldb-commits] [lldb] [lldb] Migrate distutils.version.LooseVersion to packaging.LooseVersion (PR #82066)
https://github.com/JDevlieghere created https://github.com/llvm/llvm-project/pull/82066 The distutils package has been deprecated and was removed from Python 3.12. The migration page [1] advises to use the packaging module instead. Since Python 3.6 that's vendored into pkg_resources. [1] https://peps.python.org/pep-0632/#migration-advice >From ba71b5d70df8c3ba240a86f29f31a78c55ed91d1 Mon Sep 17 00:00:00 2001 From: Jonas Devlieghere Date: Fri, 16 Feb 2024 14:59:15 -0800 Subject: [PATCH] [lldb] Migrate distutils.version.LooseVersion to packaging.LooseVersion The distutils package has been deprecated and was removed from Python 3.12. The migration page [1] advises to use the packaging module instead. Since Python 3.6 that's vendored into pkg_resources. [1] https://peps.python.org/pep-0632/#migration-advice --- .../Python/lldbsuite/test/decorators.py | 12 --- .../Python/lldbsuite/test/lldbplatformutil.py | 18 --- lldb/test/API/sanity/TestSettingSkipping.py | 32 +-- .../lldb-server/TestAppleSimulatorOSType.py | 4 +-- lldb/test/Shell/helper/build.py | 4 +-- 5 files changed, 40 insertions(+), 30 deletions(-) diff --git a/lldb/packages/Python/lldbsuite/test/decorators.py b/lldb/packages/Python/lldbsuite/test/decorators.py index a5d7a7a25879df..b691f82b90652c 100644 --- a/lldb/packages/Python/lldbsuite/test/decorators.py +++ b/lldb/packages/Python/lldbsuite/test/decorators.py @@ -1,6 +1,6 @@ # System modules -from distutils.version import LooseVersion from functools import wraps +from pkg_resources import packaging import ctypes import locale import os @@ -65,10 +65,10 @@ def fn_neq(x, y): ">=": fn_geq, "<=": fn_leq, } -expected_str = ".".join([str(x) for x in expected]) -actual_str = ".".join([str(x) for x in actual]) -return op_lookup[comparison](LooseVersion(actual_str), LooseVersion(expected_str)) +return op_lookup[comparison]( +packaging.version.parse(actual), packaging.version.parse(expected) +) def _match_decorator_property(expected, actual): @@ -238,7 +238,9 @@ def fn(actual_debug_info=None): ) ) skip_for_py_version = (py_version is None) or _check_expected_version( -py_version[0], py_version[1], sys.version_info +py_version[0], +py_version[1], +"{}.{}".format(sys.version_info.major, sys.version_info.minor), ) skip_for_macos_version = (macos_version is None) or ( (platform.mac_ver()[0] != "") diff --git a/lldb/packages/Python/lldbsuite/test/lldbplatformutil.py b/lldb/packages/Python/lldbsuite/test/lldbplatformutil.py index bd92d03e0e2212..f159e53a98429e 100644 --- a/lldb/packages/Python/lldbsuite/test/lldbplatformutil.py +++ b/lldb/packages/Python/lldbsuite/test/lldbplatformutil.py @@ -7,8 +7,8 @@ import subprocess import sys import os -from distutils.version import LooseVersion from urllib.parse import urlparse +from pkg_resources import packaging # LLDB modules import lldb @@ -308,13 +308,21 @@ def expectedCompilerVersion(compiler_version): return operator in [">", ">=", "!", "!=", "not"] if operator == ">": -return LooseVersion(test_compiler_version) > LooseVersion(version) +return packaging.version.parse(test_compiler_version) > packaging.version.parse( +version +) if operator == ">=" or operator == "=>": -return LooseVersion(test_compiler_version) >= LooseVersion(version) +return packaging.version.parse( +test_compiler_version +) >= packaging.version.parse(version) if operator == "<": -return LooseVersion(test_compiler_version) < LooseVersion(version) +return packaging.version.parse(test_compiler_version) < packaging.version.parse( +version +) if operator == "<=" or operator == "=<": -return LooseVersion(test_compiler_version) <= LooseVersion(version) +return packaging.version.parse( +test_compiler_version +) <= packaging.version.parse(version) if operator == "!=" or operator == "!" or operator == "not": return str(version) not in str(test_compiler_version) return str(version) in str(test_compiler_version) diff --git a/lldb/test/API/sanity/TestSettingSkipping.py b/lldb/test/API/sanity/TestSettingSkipping.py index 5f58ec2638456d..369948b2b49463 100644 --- a/lldb/test/API/sanity/TestSettingSkipping.py +++ b/lldb/test/API/sanity/TestSettingSkipping.py @@ -1,8 +1,7 @@ """ -This is a sanity check that verifies that test can be sklipped based on settings. +This is a sanity check that verifies that test can be skipped based on settings. """ - import lldb from lldbsuite.test.lldbtest import * from lldbsuite.test.decorators import * @@ -10,24 +9,25 @@ class SettingSkipSanityTestCase(TestBase): NO_DEBUG_INFO_TESTCASE = True +REAL_PYTHON_VERSION =