From: Victor Stinner Date: Mon, 7 Nov 2016 23:42:46 +0000 (+0100) Subject: Issue #28637: Revert issue #28082, don't import enum in re X-Git-Tag: v3.6.0b4~133 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=1ec1cd161b351bc42c4b55c0f943fa5f8fe1bb6e;p=thirdparty%2FPython%2Fcpython.git Issue #28637: Revert issue #28082, don't import enum in re Importing the enum module in the re module slows down Python startup by 34% when Python is run from a virtual environment, or more generally when the re module is imported at startup but not the enum module. --- diff --git a/Lib/re.py b/Lib/re.py index d321cff92c9c..3fd600c5c5a9 100644 --- a/Lib/re.py +++ b/Lib/re.py @@ -119,7 +119,6 @@ This module also defines an exception 'error'. """ -import enum import sre_compile import sre_parse import functools @@ -139,26 +138,18 @@ __all__ = [ __version__ = "2.2.1" -class RegexFlag(enum.IntFlag): - ASCII = sre_compile.SRE_FLAG_ASCII # assume ascii "locale" - IGNORECASE = sre_compile.SRE_FLAG_IGNORECASE # ignore case - LOCALE = sre_compile.SRE_FLAG_LOCALE # assume current 8-bit locale - UNICODE = sre_compile.SRE_FLAG_UNICODE # assume unicode "locale" - MULTILINE = sre_compile.SRE_FLAG_MULTILINE # make anchors look for newline - DOTALL = sre_compile.SRE_FLAG_DOTALL # make dot match newline - VERBOSE = sre_compile.SRE_FLAG_VERBOSE # ignore whitespace and comments - A = ASCII - I = IGNORECASE - L = LOCALE - U = UNICODE - M = MULTILINE - S = DOTALL - X = VERBOSE - # sre extensions (experimental, don't rely on these) - TEMPLATE = sre_compile.SRE_FLAG_TEMPLATE # disable backtracking - T = TEMPLATE - DEBUG = sre_compile.SRE_FLAG_DEBUG # dump pattern after compilation -globals().update(RegexFlag.__members__) +# flags +A = ASCII = sre_compile.SRE_FLAG_ASCII # assume ascii "locale" +I = IGNORECASE = sre_compile.SRE_FLAG_IGNORECASE # ignore case +L = LOCALE = sre_compile.SRE_FLAG_LOCALE # assume current 8-bit locale +U = UNICODE = sre_compile.SRE_FLAG_UNICODE # assume unicode "locale" +M = MULTILINE = sre_compile.SRE_FLAG_MULTILINE # make anchors look for newline +S = DOTALL = sre_compile.SRE_FLAG_DOTALL # make dot match newline +X = VERBOSE = sre_compile.SRE_FLAG_VERBOSE # ignore whitespace and comments + +# sre extensions (experimental, don't rely on these) +T = TEMPLATE = sre_compile.SRE_FLAG_TEMPLATE # disable backtracking +DEBUG = sre_compile.SRE_FLAG_DEBUG # dump pattern after compilation # sre exception error = sre_compile.error