Mercurial > hg
changeset 46903:856820b497fc
merge with stable
author | Matt Harbison <matt_harbison@yahoo.com> |
---|---|
date | Mon, 12 Apr 2021 22:42:47 -0400 |
parents | 631001150e13 (current diff) bc268ea9f984 (diff) |
children | ede52e19c752 |
files | mercurial/upgrade_utils/actions.py mercurial/util.py |
diffstat | 2 files changed, 16 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/mercurial/upgrade_utils/actions.py Fri Apr 09 17:41:48 2021 -0400 +++ b/mercurial/upgrade_utils/actions.py Mon Apr 12 22:42:47 2021 -0400 @@ -5,6 +5,9 @@ # This software may be used and distributed according to the terms of the # GNU General Public License version 2 or any later version. +# See https://github.com/google/pytype/issues/860 +# pytype: skip-file + from __future__ import absolute_import from ..i18n import _
--- a/mercurial/util.py Fri Apr 09 17:41:48 2021 -0400 +++ b/mercurial/util.py Mon Apr 12 22:42:47 2021 -0400 @@ -2177,6 +2177,7 @@ return True +_re2_input = lambda x: x try: import re2 # pytype: disable=import-error @@ -2188,11 +2189,21 @@ class _re(object): def _checkre2(self): global _re2 + global _re2_input try: # check if match works, see issue3964 - _re2 = bool(re2.match(br'\[([^\[]+)\]', b'[ui]')) + check_pattern = br'\[([^\[]+)\]' + check_input = b'[ui]' + _re2 = bool(re2.match(check_pattern, check_input)) except ImportError: _re2 = False + except TypeError: + # the `pyre-2` project provides a re2 module that accept bytes + # the `fb-re2` project provides a re2 module that acccept sysstr + check_pattern = pycompat.sysstr(check_pattern) + check_input = pycompat.sysstr(check_input) + _re2 = bool(re2.match(check_pattern, check_input)) + _re2_input = pycompat.sysstr def compile(self, pat, flags=0): """Compile a regular expression, using re2 if possible @@ -2208,7 +2219,7 @@ if flags & remod.MULTILINE: pat = b'(?m)' + pat try: - return re2.compile(pat) + return re2.compile(_re2_input(pat)) except re2.error: pass return remod.compile(pat, flags)