[Python-checkins] bpo-35766: What's new in the ast and typing modules (#13984)

Guido van Rossum webhook-mailer at python.org
Tue Jun 11 16:42:52 EDT 2019


https://github.com/python/cpython/commit/9b33ce48a7846dbdad32d4f8936b08e6b78a2faf
commit: 9b33ce48a7846dbdad32d4f8936b08e6b78a2faf
branch: master
author: Guido van Rossum <guido at python.org>
committer: GitHub <noreply at github.com>
date: 2019-06-11T13:42:35-07:00
summary:

bpo-35766: What's new in the ast and typing modules (#13984)

files:
M Doc/whatsnew/3.8.rst

diff --git a/Doc/whatsnew/3.8.rst b/Doc/whatsnew/3.8.rst
index e2f9ce8dd6e5..eb276139192d 100644
--- a/Doc/whatsnew/3.8.rst
+++ b/Doc/whatsnew/3.8.rst
@@ -363,6 +363,29 @@ Improved Modules
 ================
 
 
+ast
+---
+
+AST nodes now have ``end_lineno`` and ``end_col_offset`` attributes,
+which give the precise location of the end of the node.  (This only
+applies to nodes that have ``lineno`` and ``col_offset`` attributes.)
+
+The :func:`ast.parse` function has some new flags:
+
+* ``type_comments=True`` causes it to return the text of :pep:`484` and
+  :pep:`526` type comments associated with certain AST nodes;
+
+* ``mode='func_type'`` can be used to parse :pep:`484` "signature type
+  comments" (returned for function definition AST nodes);
+
+* ``feature_version=N`` allows specifying the minor version of an
+  earlier Python 3 version.  (For example, ``feature_version=4`` will
+  treat ``async`` and ``await`` as non-reserved words.)
+
+New function :func:`ast.get_source_segment` returns the source code
+for a specific AST node.
+
+
 asyncio
 -------
 
@@ -762,6 +785,29 @@ time
 Added new clock :data:`~time.CLOCK_UPTIME_RAW` for macOS 10.12.
 (Contributed by Joannah Nanjekye in :issue:`35702`.)
 
+
+typing
+------
+
+The :mod:`typing` module incorporates several new features:
+
+* Protocol definitions.  See :pep:`544`, :class:`typing.Protocol` and
+  :func:`typing.runtime_checkable`.  Simple ABCs like
+  :class:`typing.SupportsInt` are now ``Protocol`` subclasses.
+
+* A dictionary type with per-key types.  See :pep:`589` and
+  :class:`typing.TypedDict`.
+
+* Literal types.  See :pep:`586` and :class:`typing.Literal`.
+
+* "Final" variables, functions, methods and classes.  See :pep:`591`,
+  :class:`typing.Final` and :func:`typing.final`.
+
+* New protocol class :class:`typing.SupportsIndex`.
+
+* New functions :func:`typing.get_origin` and :func:`typing.get_args`.
+
+
 unicodedata
 -----------
 



More information about the Python-checkins mailing list