summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSerhiy Storchaka <storchaka@gmail.com>2020-02-17 11:03:00 +0200
committerGitHub <noreply@github.com>2020-02-17 11:03:00 +0200
commit85a2eef473a2c9ed3ab9c6ee339891fe99adbbc9 (patch)
treeb2a799d451822e2cb92a1540599a114528cf97b2
parentc33bdbb20cf55b3a2aa7a91bd3d91fcb59796fad (diff)
downloadcpython-git-85a2eef473a2c9ed3ab9c6ee339891fe99adbbc9.tar.gz
bpo-32892: Update the documentation for handling constants in AST. (GH-18514)
-rw-r--r--Doc/library/ast.rst10
-rw-r--r--Doc/whatsnew/3.8.rst6
2 files changed, 13 insertions, 3 deletions
diff --git a/Doc/library/ast.rst b/Doc/library/ast.rst
index 2cee8738e5..bfd571deb4 100644
--- a/Doc/library/ast.rst
+++ b/Doc/library/ast.rst
@@ -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:
diff --git a/Doc/whatsnew/3.8.rst b/Doc/whatsnew/3.8.rst
index cb4c518662..09047c460d 100644
--- a/Doc/whatsnew/3.8.rst
+++ b/Doc/whatsnew/3.8.rst
@@ -1940,6 +1940,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.