From 898ff03e1e7925ecde3da66327d3cdc7e07625ba Mon Sep 17 00:00:00 2001 From: Serhiy Storchaka Date: Fri, 5 May 2017 08:53:40 +0300 Subject: bpo-30215: Make re.compile() locale agnostic. (#1361) Compiled regular expression objects with the re.LOCALE flag no longer depend on the locale at compile time. Only the locale at matching time affects the result of matching. --- Lib/re.py | 12 ++---------- 1 file changed, 2 insertions(+), 10 deletions(-) (limited to 'Lib/re.py') diff --git a/Lib/re.py b/Lib/re.py index 7053eddbe0..d0ee5db175 100644 --- a/Lib/re.py +++ b/Lib/re.py @@ -268,9 +268,7 @@ _MAXCACHE = 512 def _compile(pattern, flags): # internal: compile pattern try: - p, loc = _cache[type(pattern), pattern, flags] - if loc is None or loc == _locale.setlocale(_locale.LC_CTYPE): - return p + return _cache[type(pattern), pattern, flags] except KeyError: pass if isinstance(pattern, _pattern_type): @@ -284,13 +282,7 @@ def _compile(pattern, flags): if not (flags & DEBUG): if len(_cache) >= _MAXCACHE: _cache.clear() - if p.flags & LOCALE: - if not _locale: - return p - loc = _locale.setlocale(_locale.LC_CTYPE) - else: - loc = None - _cache[type(pattern), pattern, flags] = p, loc + _cache[type(pattern), pattern, flags] = p return p @functools.lru_cache(_MAXCACHE) -- cgit v1.2.1