bpo-44322: Document more SyntaxError details. (GH-26562)

1. SyntaxError args have a tuple of other attributes.
2. Attributes are adjusted for errors in f-string field expressions.
3. Compile() can raise SyntaxErrors.
This commit is contained in:
Terry Jan Reedy 2021-06-06 21:42:31 -04:00 committed by GitHub
parent 0d12f24552
commit 67dfa6f2a5
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 11 additions and 2 deletions

View file

@ -409,14 +409,16 @@ The following exceptions are the exceptions that are usually raised.
.. versionadded:: 3.5 .. versionadded:: 3.5
.. exception:: SyntaxError .. exception:: SyntaxError(message, details)
Raised when the parser encounters a syntax error. This may occur in an Raised when the parser encounters a syntax error. This may occur in an
:keyword:`import` statement, in a call to the built-in functions :func:`exec` :keyword:`import` statement, in a call to the built-in functions
:func:`compile`, :func:`exec`,
or :func:`eval`, or when reading the initial script or standard input or :func:`eval`, or when reading the initial script or standard input
(also interactively). (also interactively).
The :func:`str` of the exception instance returns only the error message. The :func:`str` of the exception instance returns only the error message.
Details is a tuple whose members are also available as separate attributes.
.. attribute:: filename .. attribute:: filename
@ -446,6 +448,11 @@ The following exceptions are the exceptions that are usually raised.
The column in the end line where the error occurred finishes. This is The column in the end line where the error occurred finishes. This is
1-indexed: the first character in the line has an ``offset`` of 1. 1-indexed: the first character in the line has an ``offset`` of 1.
For errors in f-string fields, the message is prefixed by "f-string: "
and the offsets are offsets in a text constructed from the replacement
expression. For example, compiling f'Bad {a b} field' results in this
args attribute: ('f-string: ...', ('', 1, 2, '(a b)\n', 1, 5)).
.. versionchanged:: 3.10 .. versionchanged:: 3.10
Added the :attr:`end_lineno` and :attr:`end_offset` attributes. Added the :attr:`end_lineno` and :attr:`end_offset` attributes.

View file

@ -0,0 +1,2 @@
Document that SyntaxError args have a details tuple and that details are
adjusted for errors in f-string field replacement expressions.