]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
bpo-32892: Update the documentation for handling constants in AST. (GH-18514)
authorMiss Islington (bot) <31488909+miss-islington@users.noreply.github.com>
Mon, 17 Feb 2020 09:09:49 +0000 (01:09 -0800)
committerGitHub <noreply@github.com>
Mon, 17 Feb 2020 09:09:49 +0000 (01:09 -0800)
(cherry picked from commit 85a2eef473a2c9ed3ab9c6ee339891fe99adbbc9)

Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
Doc/library/ast.rst
Doc/whatsnew/3.8.rst

index a5dd0e1cc70dd6545246727d29d4bea3ba1cd375..80afbbce4167eb27d678b0124fe6c07552928076 100644 (file)
@@ -101,12 +101,16 @@ Node classes
       node = ast.UnaryOp(ast.USub(), ast.Constant(5, lineno=0, col_offset=0),
                          lineno=0, col_offset=0)
 
+.. versionchanged:: 3.8
+
+   Class :class:`ast.Constant` is now used for all constants.
+
 .. deprecated:: 3.8
 
-   Class :class:`ast.Constant` is now used for all constants. Old classes
-   :class:`ast.Num`, :class:`ast.Str`, :class:`ast.Bytes`,
+   Old classes :class:`ast.Num`, :class:`ast.Str`, :class:`ast.Bytes`,
    :class:`ast.NameConstant` and :class:`ast.Ellipsis` are still available,
-   but they will be removed in future Python releases.
+   but they will be removed in future Python releases.  In the meanwhile,
+   instantiating them will return an instance of a different class.
 
 
 .. _abstract-grammar:
index 9b61e1f05542df6e6cec41ff38d260b4e0512c14..3ef97c98ca90770b21760297f9c4a3fbe14ce9ae 100644 (file)
@@ -1942,6 +1942,12 @@ Changes in the Python API
   :exc:`dbm.gnu.error` or :exc:`dbm.ndbm.error`) instead of :exc:`KeyError`.
   (Contributed by Xiang Zhang in :issue:`33106`.)
 
+* Simplified AST for literals.  All constants will be represented as
+  :class:`ast.Constant` instances.  Instantiating old classes ``Num``,
+  ``Str``, ``Bytes``, ``NameConstant`` and ``Ellipsis`` will return
+  an instance of ``Constant``.
+  (Contributed by Serhiy Storchaka in :issue:`32892`.)
+
 * :func:`~os.path.expanduser` on Windows now prefers the :envvar:`USERPROFILE`
   environment variable and does not use :envvar:`HOME`, which is not normally
   set for regular user accounts.