summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPablo Galindo Salgado <Pablogsal@gmail.com>2021-09-19 22:44:51 (GMT)
committerGitHub <noreply@github.com>2021-09-19 22:44:51 (GMT)
commite6d05a4092b4176a30d1d1596585df13c2ab676d (patch)
tree7e5a0824e3b159b1c5c8f3a3716eafa7f685c58c
parentf25f2e2e8c8e48490d22b0cdf67f575608701f6f (diff)
downloadcpython-e6d05a4092b4176a30d1d1596585df13c2ab676d.zip
cpython-e6d05a4092b4176a30d1d1596585df13c2ab676d.tar.gz
cpython-e6d05a4092b4176a30d1d1596585df13c2ab676d.tar.bz2
bpo-30637: Improve the docs of ast.parse regarding differences with compile() (GH-28459)
-rw-r--r--Doc/library/ast.rst13
1 files changed, 13 insertions, 0 deletions
diff --git a/Doc/library/ast.rst b/Doc/library/ast.rst
index 19e7bcc..e21151b 100644
--- a/Doc/library/ast.rst
+++ b/Doc/library/ast.rst
@@ -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