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

This commit is contained in:
Pablo Galindo Salgado 2021-09-19 23:44:51 +01:00 • committed by GitHub
parent f25f2e2e8c
commit e6d05a4092
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

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