diff options
author | Pablo Galindo Salgado <Pablogsal@gmail.com> | 2023-05-31 21:01:29 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-05-31 21:01:29 (GMT) |
commit | 60cfc6d1ae01c89f9b390ea5eb6a582c8a53f971 (patch) | |
tree | df68e37c4426406ab491c14519a9a24c7a3b38ec /Doc | |
parent | d944d873b2d7a627c20246762e931f9d4fcf8fe7 (diff) | |
download | cpython-60cfc6d1ae01c89f9b390ea5eb6a582c8a53f971.zip cpython-60cfc6d1ae01c89f9b390ea5eb6a582c8a53f971.tar.gz cpython-60cfc6d1ae01c89f9b390ea5eb6a582c8a53f971.tar.bz2 |
Clarify that error messages are better with PEP 701 (#105150)
Co-authored-by: Marta Gómez Macías <mgmacias@google.com>
Diffstat (limited to 'Doc')
-rw-r--r-- | Doc/whatsnew/3.12.rst | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/Doc/whatsnew/3.12.rst b/Doc/whatsnew/3.12.rst index 2423672..6f72590 100644 --- a/Doc/whatsnew/3.12.rst +++ b/Doc/whatsnew/3.12.rst @@ -203,6 +203,31 @@ same quote as the containing f-string. Let's cover these in detail: See :pep:`701` for more details. +As a positive side-effect of how this feature has been implemented (by parsing f-strings +with the PEG parser (see :pep:`617`), now error messages for f-strings are more precise +and include the exact location of the error. For example, in Python 3.11, the following +f-string raises a :exc:`SyntaxError`: + +.. code-block:: python + + >>> my_string = f"{x z y}" + f"{1 + 1}" + File "<stdin>", line 1 + (x z y) + ^^^ + SyntaxError: f-string: invalid syntax. Perhaps you forgot a comma? + +but the error message doesn't include the exact location of the error withing the line and +also has the expression artificially surrounded by parentheses. In Python 3.12, as f-strings +are parsed with the PEG parser, error messages can be more precise and show the entire line: + +.. code-block:: python + + >>> my_string = f"{x z y}" + f"{1 + 1}" + File "<stdin>", line 1 + my_string = f"{x z y}" + f"{1 + 1}" + ^^^ + SyntaxError: invalid syntax. Perhaps you forgot a comma? + (Contributed by Pablo Galindo, Batuhan Taskaya, Lysandros Nikolaou, Cristián Maureira-Fredes and Marta Gómez in :gh:`102856`. PEP written by Pablo Galindo, Batuhan Taskaya, Lysandros Nikolaou and Marta Gómez). |