summaryrefslogtreecommitdiffstats
path: root/Lib/re
diff options
context:
space:
mode:
authorachhina <amanschhina@gmail.com>2023-12-11 20:45:08 (GMT)
committerGitHub <noreply@github.com>2023-12-11 20:45:08 (GMT)
commita01022af23b27a9bfb4fadbcdb60b1ddf24a7220 (patch)
tree94379f595ca9d2b19effd282e2f8fc10ead2ae72 /Lib/re
parent0066ab5bc58a036b3f448cd6f9bbdd92120e39ba (diff)
downloadcpython-a01022af23b27a9bfb4fadbcdb60b1ddf24a7220.zip
cpython-a01022af23b27a9bfb4fadbcdb60b1ddf24a7220.tar.gz
cpython-a01022af23b27a9bfb4fadbcdb60b1ddf24a7220.tar.bz2
GH-83162: Rename re.error for better clarity. (#101677)
Renamed re.error for clarity, and kept re.error for backward compatibility. Updated idlelib files at TJR's request. --------- Co-authored-by: Matthias Bussonnier <mbussonnier@ucmerced.edu> Co-authored-by: Hugo van Kemenade <hugovk@users.noreply.github.com> Co-authored-by: Terry Jan Reedy <tjreedy@udel.edu>
Diffstat (limited to 'Lib/re')
-rw-r--r--Lib/re/__init__.py7
-rw-r--r--Lib/re/_compiler.py6
-rw-r--r--Lib/re/_constants.py5
3 files changed, 11 insertions, 7 deletions
diff --git a/Lib/re/__init__.py b/Lib/re/__init__.py
index 428d1b0..7e8abbf 100644
--- a/Lib/re/__init__.py
+++ b/Lib/re/__init__.py
@@ -117,7 +117,8 @@ A, L, and U are mutually exclusive.
U UNICODE For compatibility only. Ignored for string patterns (it
is the default), and forbidden for bytes patterns.
-This module also defines an exception 'error'.
+This module also defines exception 'PatternError', aliased to 'error' for
+backward compatibility.
"""
@@ -133,7 +134,7 @@ __all__ = [
"findall", "finditer", "compile", "purge", "escape",
"error", "Pattern", "Match", "A", "I", "L", "M", "S", "X", "U",
"ASCII", "IGNORECASE", "LOCALE", "MULTILINE", "DOTALL", "VERBOSE",
- "UNICODE", "NOFLAG", "RegexFlag",
+ "UNICODE", "NOFLAG", "RegexFlag", "PatternError"
]
__version__ = "2.2.1"
@@ -155,7 +156,7 @@ class RegexFlag:
_numeric_repr_ = hex
# sre exception
-error = _compiler.error
+PatternError = error = _compiler.PatternError
# --------------------------------------------------------------------
# public interface
diff --git a/Lib/re/_compiler.py b/Lib/re/_compiler.py
index f87712d..7b888f8 100644
--- a/Lib/re/_compiler.py
+++ b/Lib/re/_compiler.py
@@ -150,7 +150,7 @@ def _compile(code, pattern, flags):
if lo > MAXCODE:
raise error("looks too much behind")
if lo != hi:
- raise error("look-behind requires fixed-width pattern")
+ raise PatternError("look-behind requires fixed-width pattern")
emit(lo) # look behind
_compile(code, av[1], flags)
emit(SUCCESS)
@@ -209,7 +209,7 @@ def _compile(code, pattern, flags):
else:
code[skipyes] = _len(code) - skipyes + 1
else:
- raise error("internal: unsupported operand type %r" % (op,))
+ raise PatternError(f"internal: unsupported operand type {op!r}")
def _compile_charset(charset, flags, code):
# compile charset subprogram
@@ -235,7 +235,7 @@ def _compile_charset(charset, flags, code):
else:
emit(av)
else:
- raise error("internal: unsupported set operator %r" % (op,))
+ raise PatternError(f"internal: unsupported set operator {op!r}")
emit(FAILURE)
def _optimize_charset(charset, iscased=None, fixup=None, fixes=None):
diff --git a/Lib/re/_constants.py b/Lib/re/_constants.py
index d8e483a..9c3c294 100644
--- a/Lib/re/_constants.py
+++ b/Lib/re/_constants.py
@@ -20,7 +20,7 @@ from _sre import MAXREPEAT, MAXGROUPS
# SRE standard exception (access as sre.error)
# should this really be here?
-class error(Exception):
+class PatternError(Exception):
"""Exception raised for invalid regular expressions.
Attributes:
@@ -53,6 +53,9 @@ class error(Exception):
super().__init__(msg)
+# Backward compatibility after renaming in 3.13
+error = PatternError
+
class _NamedIntConstant(int):
def __new__(cls, value, name):
self = super(_NamedIntConstant, cls).__new__(cls, value)