mirror of https://github.com/python/cpython.git
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:
parent
bedce3538c
commit
f17c979d90
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue