DavidSpickett created this revision.
Herald added a project: All.
DavidSpickett requested review of this revision.
Herald added a project: LLDB.
Herald added a subscriber: lldb-commits.

TODO: This would require packaging (https://github.com/pypa/packaging)

  to be added as a third party module, it is not part of the base python.

[lldb] Use packaging.version instead of distutils Strict/LooseVersion

distutils is deprecated (https://peps.python.org/pep-0632/) and
packaging is the recommended replacement.

Although LegacyVersion is itself deprecated within packaging,
we have our own copy of the package so that's not a risk until it
needs updating.


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D124670

Files:
  lldb/packages/Python/lldbsuite/test/decorators.py
  lldb/packages/Python/lldbsuite/test/lldbtest.py
  lldb/test/API/tools/lldb-server/TestAppleSimulatorOSType.py
  lldb/test/Shell/helper/build.py

Index: lldb/test/Shell/helper/build.py
===================================================================
--- lldb/test/Shell/helper/build.py
+++ lldb/test/Shell/helper/build.py
@@ -351,8 +351,8 @@
         if not subdirs:
             return None
 
-        from distutils.version import StrictVersion
-        subdirs.sort(key=lambda x : StrictVersion(x))
+        from packaging.version import Version
+        subdirs.sort(key=lambda x : Version(x))
 
         if self.verbose:
             full_path = os.path.join(vcinstalldir, subdirs[-1])
@@ -417,9 +417,9 @@
                 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 distutils.version import LooseVersion
-            sdk_versions.sort(key=lambda x : LooseVersion(x), reverse=True)
+            # have to use LegacyVersion, as Version expects 3 or fewer.
+            from packaging.version import LegacyVersion
+            sdk_versions.sort(key=lambda x : LegacyVersion(x), reverse=True)
             option_value_name = 'OptionId.DesktopCPP' + self.msvc_arch_str
             for v in sdk_versions:
                 try:
Index: lldb/test/API/tools/lldb-server/TestAppleSimulatorOSType.py
===================================================================
--- lldb/test/API/tools/lldb-server/TestAppleSimulatorOSType.py
+++ lldb/test/API/tools/lldb-server/TestAppleSimulatorOSType.py
@@ -54,8 +54,8 @@
 
         # Older versions of watchOS (<7.0) only support i386
         if platform_name == 'watchos':
-            from distutils.version import LooseVersion
-            if LooseVersion(vers) < LooseVersion("7.0"):
+            from packaging.version import LegacyVersion
+            if LegacyVersion(vers) < LegacyVersion("7.0"):
                 arch = 'i386'
 
         triple = '-'.join([arch, 'apple', platform_name + vers, 'simulator'])
Index: lldb/packages/Python/lldbsuite/test/lldbtest.py
===================================================================
--- lldb/packages/Python/lldbsuite/test/lldbtest.py
+++ lldb/packages/Python/lldbsuite/test/lldbtest.py
@@ -36,7 +36,6 @@
 
 # System modules
 import abc
-from distutils.version import LooseVersion
 from functools import wraps
 import gc
 import glob
@@ -51,6 +50,7 @@
 import traceback
 
 # Third-party modules
+from packaging.version import LegacyVersion
 import unittest2
 from six import add_metaclass
 from six import StringIO as SixStringIO
@@ -1354,13 +1354,13 @@
             return operator in ['>', '>=', '!', '!=', 'not']
 
         if operator == '>':
-            return LooseVersion(test_compiler_version) > LooseVersion(version)
+            return LegacyVersion(test_compiler_version) > LegacyVersion(version)
         if operator == '>=' or operator == '=>':
-            return LooseVersion(test_compiler_version) >= LooseVersion(version)
+            return LegacyVersion(test_compiler_version) >= LegacyVersion(version)
         if operator == '<':
-            return LooseVersion(test_compiler_version) < LooseVersion(version)
+            return LegacyVersion(test_compiler_version) < LegacyVersion(version)
         if operator == '<=' or operator == '=<':
-            return LooseVersion(test_compiler_version) <= LooseVersion(version)
+            return LegacyVersion(test_compiler_version) <= LegacyVersion(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)
Index: lldb/packages/Python/lldbsuite/test/decorators.py
===================================================================
--- lldb/packages/Python/lldbsuite/test/decorators.py
+++ lldb/packages/Python/lldbsuite/test/decorators.py
@@ -1,7 +1,6 @@
 from __future__ import absolute_import
 
 # System modules
-from distutils.version import LooseVersion
 from functools import wraps
 import ctypes
 import locale
@@ -13,6 +12,7 @@
 import subprocess
 
 # Third-party modules
+from packaging.version import LegacyVersion
 import six
 import unittest2
 
@@ -67,8 +67,8 @@
     actual_str = '.'.join([str(x) for x in actual])
 
     return op_lookup[comparison](
-        LooseVersion(actual_str),
-        LooseVersion(expected_str))
+        LegacyVersion(actual_str),
+        LegacyVersion(expected_str))
 
 
 _re_pattern_type = type(re.compile(''))
_______________________________________________
lldb-commits mailing list
lldb-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits
  • [Lldb-commits] [PATCH] D12... David Spickett via Phabricator via lldb-commits

Reply via email to