bpo-30688: Import unicodedata only when needed. (GH-5606)
Importing unicodedata in sre_parse leads to failure in compilation.
unicodedata is unused during compilation, and is not compiled when this
file is imported. The error occurs when generating posix variables,
pprint is required. The dependency chain goes on like this:
sysconfig -> pprint -> re -> sre_compile -> sre_parse (this file)
This commits fixes compilation issues introduced by
2272cec13b
.
(Issue 30688, GH-5588)
This commit is contained in:
parent
a445feb729
commit
5df5286abd
|
@ -13,7 +13,6 @@
|
|||
# XXX: show string offset and offending character for all errors
|
||||
|
||||
from sre_constants import *
|
||||
import unicodedata
|
||||
|
||||
SPECIAL_CHARS = ".\\[{()*+?^$|"
|
||||
REPEAT_CHARS = "*+?{"
|
||||
|
@ -324,6 +323,7 @@ def _class_escape(source, escape):
|
|||
chr(c) # raise ValueError for invalid code
|
||||
return LITERAL, c
|
||||
elif c == "N" and source.istext:
|
||||
import unicodedata
|
||||
# named unicode escape e.g. \N{EM DASH}
|
||||
if not source.match('{'):
|
||||
raise source.error("missing {")
|
||||
|
@ -383,6 +383,7 @@ def _escape(source, escape, state):
|
|||
chr(c) # raise ValueError for invalid code
|
||||
return LITERAL, c
|
||||
elif c == "N" and source.istext:
|
||||
import unicodedata
|
||||
# named unicode escape e.g. \N{EM DASH}
|
||||
if not source.match('{'):
|
||||
raise source.error("missing {")
|
||||
|
|
Loading…
Reference in New Issue