From: Dave Lee Date: Mon, 7 Nov 2022 21:20:48 +0000 (-0800) Subject: [lldb] Fix issue with re.Pattern availability X-Git-Tag: upstream/17.0.6~28267 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=7bf3cb3ee871b6707b7f5114a7fde61485df450e;p=platform%2Fupstream%2Fllvm.git [lldb] Fix issue with re.Pattern availability `re.Pattern` is introduced in Python 3.7. To support Python 3.6, fallback to typechecking against `SRE_Pattern`. Differential Revision: https://reviews.llvm.org/D137582 --- diff --git a/lldb/packages/Python/lldbsuite/test/decorators.py b/lldb/packages/Python/lldbsuite/test/decorators.py index 3e3db09..dd47f68 100644 --- a/lldb/packages/Python/lldbsuite/test/decorators.py +++ b/lldb/packages/Python/lldbsuite/test/decorators.py @@ -80,7 +80,9 @@ def _match_decorator_property(expected, actual): if isinstance(expected, no_match): return not _match_decorator_property(expected.item, actual) - if isinstance(expected, (re.Pattern, str)): + # Python 3.6 doesn't declare a `re.Pattern` type, get the dynamic type. + pattern_type = type(re.compile('')) + if isinstance(expected, (pattern_type, str)): return re.search(expected, actual) is not None if hasattr(expected, "__iter__"): diff --git a/lldb/packages/Python/lldbsuite/test/lldbtest.py b/lldb/packages/Python/lldbsuite/test/lldbtest.py index 2d054f9..63bad9d 100644 --- a/lldb/packages/Python/lldbsuite/test/lldbtest.py +++ b/lldb/packages/Python/lldbsuite/test/lldbtest.py @@ -282,11 +282,14 @@ class ValueCheck: test_base.assertSuccess(val.GetError()) + # Python 3.6 doesn't declare a `re.Pattern` type, get the dynamic type. + pattern_type = type(re.compile('')) + if self.expect_name: test_base.assertEqual(self.expect_name, val.GetName(), this_error_msg) if self.expect_value: - if isinstance(self.expect_value, re.Pattern): + if isinstance(self.expect_value, pattern_type): test_base.assertRegex(val.GetValue(), self.expect_value, this_error_msg) else: @@ -296,7 +299,7 @@ class ValueCheck: test_base.assertEqual(self.expect_type, val.GetDisplayTypeName(), this_error_msg) if self.expect_summary: - if isinstance(self.expect_summary, re.Pattern): + if isinstance(self.expect_summary, pattern_type): test_base.assertRegex(val.GetSummary(), self.expect_summary, this_error_msg) else: