Issue 19327: re doesn't work with big charsets (original) (raw)
import re re.compile('[%s]' % ''.join(map(chr, range(256, 2**16, 255)))) Traceback (most recent call last): File "/home/serhiy/py/cpython/Lib/sre_compile.py", line 211, in _optimize_charset charmap[fixup(av)] = 1 IndexError: list assignment index out of range
During handling of the above exception, another exception occurred:
Traceback (most recent call last): File "", line 1, in File "/home/serhiy/py/cpython/Lib/re.py", line 213, in compile return _compile(pattern, flags) File "/home/serhiy/py/cpython/Lib/re.py", line 280, in _compile p = sre_compile.compile(pattern, flags) File "/home/serhiy/py/cpython/Lib/sre_compile.py", line 489, in compile code = _code(p, flags) File "/home/serhiy/py/cpython/Lib/sre_compile.py", line 471, in _code _compile_info(code, p, flags) File "/home/serhiy/py/cpython/Lib/sre_compile.py", line 459, in _compile_info _compile_charset(charset, flags, code) File "/home/serhiy/py/cpython/Lib/sre_compile.py", line 177, in _compile_charset for op, av in _optimize_charset(charset, fixup): File "/home/serhiy/py/cpython/Lib/sre_compile.py", line 220, in _optimize_charset return _optimize_unicode(charset, fixup) File "/home/serhiy/py/cpython/Lib/sre_compile.py", line 342, in _optimize_unicode mapping = array.array('b', mapping).tobytes() OverflowError: signed char is greater than maximum