mirror of
https://github.com/python/cpython.git
synced 2025-11-02 03:01:58 +00:00
gh-98401: Invalid escape sequences emits SyntaxWarning (#99011)
A backslash-character pair that is not a valid escape sequence now
generates a SyntaxWarning, instead of DeprecationWarning. For
example, re.compile("\d+\.\d+") now emits a SyntaxWarning ("\d" is an
invalid escape sequence), use raw strings for regular expression:
re.compile(r"\d+\.\d+"). In a future Python version, SyntaxError will
eventually be raised, instead of SyntaxWarning.
Octal escapes with value larger than 0o377 (ex: "\477"), deprecated
in Python 3.11, now produce a SyntaxWarning, instead of
DeprecationWarning. In a future Python version they will be
eventually a SyntaxError.
codecs.escape_decode() and codecs.unicode_escape_decode() are left
unchanged: they still emit DeprecationWarning.
* The parser only emits SyntaxWarning for Python 3.12 (feature
version), and still emits DeprecationWarning on older Python
versions.
* Fix SyntaxWarning by using raw strings in Tools/c-analyzer/ and
wasm_build.py.
This commit is contained in:
parent
916af11a97
commit
a60ddd31be
11 changed files with 69 additions and 29 deletions
|
|
@ -612,9 +612,13 @@ Notes:
|
|||
As in Standard C, up to three octal digits are accepted.
|
||||
|
||||
.. versionchanged:: 3.11
|
||||
Octal escapes with value larger than ``0o377`` produce a :exc:`DeprecationWarning`.
|
||||
In a future Python version they will be a :exc:`SyntaxWarning` and
|
||||
eventually a :exc:`SyntaxError`.
|
||||
Octal escapes with value larger than ``0o377`` produce a
|
||||
:exc:`DeprecationWarning`.
|
||||
|
||||
.. versionchanged:: 3.12
|
||||
Octal escapes with value larger than ``0o377`` produce a
|
||||
:exc:`SyntaxWarning`. In a future Python version they will be eventually
|
||||
a :exc:`SyntaxError`.
|
||||
|
||||
(3)
|
||||
Unlike in Standard C, exactly two hex digits are required.
|
||||
|
|
@ -646,9 +650,11 @@ escape sequences only recognized in string literals fall into the category of
|
|||
unrecognized escapes for bytes literals.
|
||||
|
||||
.. versionchanged:: 3.6
|
||||
Unrecognized escape sequences produce a :exc:`DeprecationWarning`. In
|
||||
a future Python version they will be a :exc:`SyntaxWarning` and
|
||||
eventually a :exc:`SyntaxError`.
|
||||
Unrecognized escape sequences produce a :exc:`DeprecationWarning`.
|
||||
|
||||
.. versionchanged:: 3.12
|
||||
Unrecognized escape sequences produce a :exc:`SyntaxWarning`. In a future
|
||||
Python version they will be eventually a :exc:`SyntaxError`.
|
||||
|
||||
Even in a raw literal, quotes can be escaped with a backslash, but the
|
||||
backslash remains in the result; for example, ``r"\""`` is a valid string
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue