bpo-30637: Improve the docs of ast.parse regarding differences with compile() (GH-28459)

(cherry picked from commit e6d05a4092)

Co-authored-by: Pablo Galindo Salgado <Pablogsal@gmail.com>
This commit is contained in:
Miss Islington (bot) 2021-09-19 16:07:16 -07:00 committed by GitHub
parent bedce3538c
commit f17c979d90
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 13 additions and 0 deletions

View File

@ -1917,6 +1917,19 @@ and classes for traversing abstract syntax trees:
``await`` as variable names. The lowest supported version is
``(3, 4)``; the highest is ``sys.version_info[0:2]``.
If source contains a null character ('\0'), :exc:`ValueError` is raised.
.. warning::
Note that succesfully parsing souce code into an AST object doesn't
guarantee that the source code provided is valid Python code that can
be executed as the compilation step can raise further :exc:`SyntaxError`
exceptions. For instance, the source ``return 42`` generates a valid
AST node for a return statement, but it cannot be compiled alone (it needs
to be inside a function node).
In particular, :func:`ast.parse` won't do any scoping checks, which the
compilation step does.
.. warning::
It is possible to crash the Python interpreter with a
sufficiently large/complex string due to stack depth limitations