From 22ea97d7bfd65abf68a68b13bf96ad69be23df54 Mon Sep 17 00:00:00 2001 From: Jonas Devlieghere Date: Thu, 13 Jun 2024 16:00:12 -0700 Subject: [lldb] Use packaging module instead of pkg_resources (#93712) Use the packaging [1] module for parsing version numbers, instead of pkg_resources which is distributed with setuptools. I recently switched over to using the latter, knowing it was deprecated (in favor of the packaging module) because it comes with Python out of the box. Newer versions of setuptools have removed `pkg_resources` so we have to use packaging. [1] https://pypi.org/project/packaging/ --- lldb/packages/Python/lldbsuite/test/decorators.py | 6 ++---- lldb/packages/Python/lldbsuite/test/lldbplatformutil.py | 15 +++++++-------- .../API/tools/lldb-server/TestAppleSimulatorOSType.py | 4 ++-- lldb/test/Shell/helper/build.py | 10 ++++------ 4 files changed, 15 insertions(+), 20 deletions(-) (limited to 'lldb') diff --git a/lldb/packages/Python/lldbsuite/test/decorators.py b/lldb/packages/Python/lldbsuite/test/decorators.py index 79cc0a2a..ecc7b81 100644 --- a/lldb/packages/Python/lldbsuite/test/decorators.py +++ b/lldb/packages/Python/lldbsuite/test/decorators.py @@ -1,6 +1,6 @@ # System modules from functools import wraps -from pkg_resources import packaging +from packaging import version import ctypes import locale import os @@ -66,9 +66,7 @@ def _check_expected_version(comparison, expected, actual): "<=": fn_leq, } - return op_lookup[comparison]( - packaging.version.parse(actual), packaging.version.parse(expected) - ) + return op_lookup[comparison](version.parse(actual), version.parse(expected)) def _match_decorator_property(expected, actual): diff --git a/lldb/packages/Python/lldbsuite/test/lldbplatformutil.py b/lldb/packages/Python/lldbsuite/test/lldbplatformutil.py index 187d16a..21f2095 100644 --- a/lldb/packages/Python/lldbsuite/test/lldbplatformutil.py +++ b/lldb/packages/Python/lldbsuite/test/lldbplatformutil.py @@ -8,8 +8,7 @@ import re import subprocess import sys import os -from urllib.parse import urlparse -from pkg_resources import packaging +from packaging import version # LLDB modules import lldb @@ -309,17 +308,17 @@ def expectedCompilerVersion(compiler_version): # Assume the compiler version is at or near the top of trunk. return operator in [">", ">=", "!", "!=", "not"] - version = packaging.version.parse(version_str) - test_compiler_version = packaging.version.parse(test_compiler_version_str) + actual_version = version.parse(version_str) + test_compiler_version = version.parse(test_compiler_version_str) if operator == ">": - return test_compiler_version > version + return test_compiler_version > actual_version if operator == ">=" or operator == "=>": - return test_compiler_version >= version + return test_compiler_version >= actual_version if operator == "<": - return test_compiler_version < version + return test_compiler_version < actual_version if operator == "<=" or operator == "=<": - return test_compiler_version <= version + return test_compiler_version <= actual_version if operator == "!=" or operator == "!" or operator == "not": return version_str not in test_compiler_version_str return version_str in test_compiler_version_str diff --git a/lldb/test/API/tools/lldb-server/TestAppleSimulatorOSType.py b/lldb/test/API/tools/lldb-server/TestAppleSimulatorOSType.py index d770447..754579a 100644 --- a/lldb/test/API/tools/lldb-server/TestAppleSimulatorOSType.py +++ b/lldb/test/API/tools/lldb-server/TestAppleSimulatorOSType.py @@ -61,9 +61,9 @@ class TestAppleSimulatorOSType(gdbremote_testcase.GdbRemoteTestCaseBase): # Older versions of watchOS (<7.0) only support i386 if platform_name == "watchos": - from pkg_resources import packaging + from packaging import version - if packaging.version.parse(vers) < packaging.version.parse("7.0"): + if version.parse(vers) < version.parse("7.0"): arch = "i386" triple = "-".join([arch, "apple", platform_name + vers, "simulator"]) diff --git a/lldb/test/Shell/helper/build.py b/lldb/test/Shell/helper/build.py index d3c25bd..b2b8146 100755 --- a/lldb/test/Shell/helper/build.py +++ b/lldb/test/Shell/helper/build.py @@ -441,9 +441,9 @@ class MsvcBuilder(Builder): if not subdirs: return None - from distutils.version import StrictVersion + from packaging import version - subdirs.sort(key=lambda x: StrictVersion(x)) + subdirs.sort(key=lambda x: version.parse(x)) if self.verbose: full_path = os.path.join(vcinstalldir, subdirs[-1]) @@ -517,11 +517,9 @@ class MsvcBuilder(Builder): if not sdk_versions: return (None, None) - # Windows SDK version numbers consist of 4 dotted components, so we - # have to use LooseVersion, as StrictVersion supports 3 or fewer. - from pkg_resources import packaging + from packaging import version - sdk_versions.sort(key=lambda x: packaging.version.parse(x), reverse=True) + sdk_versions.sort(key=lambda x: version.parse(x), reverse=True) option_value_name = "OptionId.DesktopCPP" + self.msvc_arch_str for v in sdk_versions: try: -- cgit v1.1