summaryrefslogtreecommitdiffstats
path: root/Lib/re/_parser.py
diff options
context:
space:
mode:
authorSerhiy Storchaka <storchaka@gmail.com>2022-04-06 16:54:44 (GMT)
committerGitHub <noreply@github.com>2022-04-06 16:54:44 (GMT)
commit50872dbadcba1f52867b6f76050cd7b5d0aa1e18 (patch)
tree2cfb376df7bd63a6438bb3fbafcdc830f641f82d /Lib/re/_parser.py
parentb09184bf05b07b77c5ecfedd4daa846be3cbf0a9 (diff)
downloadcpython-50872dbadcba1f52867b6f76050cd7b5d0aa1e18.zip
cpython-50872dbadcba1f52867b6f76050cd7b5d0aa1e18.tar.gz
cpython-50872dbadcba1f52867b6f76050cd7b5d0aa1e18.tar.bz2
bpo-47227: Suppress expression chaining for more RE parsing errors (GH-32333)
Diffstat (limited to 'Lib/re/_parser.py')
-rw-r--r--Lib/re/_parser.py10
1 files changed, 5 insertions, 5 deletions
diff --git a/Lib/re/_parser.py b/Lib/re/_parser.py
index eca2ffc..f191f80 100644
--- a/Lib/re/_parser.py
+++ b/Lib/re/_parser.py
@@ -335,7 +335,7 @@ def _class_escape(source, escape):
c = ord(unicodedata.lookup(charname))
except KeyError:
raise source.error("undefined character name %r" % charname,
- len(charname) + len(r'\N{}'))
+ len(charname) + len(r'\N{}')) from None
return LITERAL, c
elif c in OCTDIGITS:
# octal escape (up to three digits)
@@ -395,7 +395,7 @@ def _escape(source, escape, state):
c = ord(unicodedata.lookup(charname))
except KeyError:
raise source.error("undefined character name %r" % charname,
- len(charname) + len(r'\N{}'))
+ len(charname) + len(r'\N{}')) from None
return LITERAL, c
elif c == "0":
# octal escape
@@ -1014,7 +1014,7 @@ def parse_template(source, state):
try:
index = groupindex[name]
except KeyError:
- raise IndexError("unknown group name %r" % name)
+ raise IndexError("unknown group name %r" % name) from None
else:
try:
index = int(name)
@@ -1053,7 +1053,7 @@ def parse_template(source, state):
this = chr(ESCAPES[this][1])
except KeyError:
if c in ASCIILETTERS:
- raise s.error('bad escape %s' % this, len(this))
+ raise s.error('bad escape %s' % this, len(this)) from None
lappend(this)
else:
lappend(this)
@@ -1074,5 +1074,5 @@ def expand_template(template, match):
for index, group in groups:
literals[index] = g(group) or empty
except IndexError:
- raise error("invalid group reference %d" % index)
+ raise error("invalid group reference %d" % index) from None
return empty.join(literals)