summaryrefslogtreecommitdiffstats
path: root/Doc/whatsnew/3.8.rst
diff options
context:
space:
mode:
authorRaymond Hettinger <rhettinger@users.noreply.github.com>2019-10-14 06:32:03 (GMT)
committerGitHub <noreply@github.com>2019-10-14 06:32:03 (GMT)
commita3291531ea51455cfa5989119db496267425323c (patch)
treed7b9d94728f3027b472f5460f03fc857de91fcdf /Doc/whatsnew/3.8.rst
parent61a6db5e79921b89b9e2a154990f01f5f3150213 (diff)
downloadcpython-a3291531ea51455cfa5989119db496267425323c.zip
cpython-a3291531ea51455cfa5989119db496267425323c.tar.gz
cpython-a3291531ea51455cfa5989119db496267425323c.tar.bz2
bpo-37759: Add examples for the new typing features (GH-16763)
Diffstat (limited to 'Doc/whatsnew/3.8.rst')
-rw-r--r--Doc/whatsnew/3.8.rst26
1 files changed, 21 insertions, 5 deletions
diff --git a/Doc/whatsnew/3.8.rst b/Doc/whatsnew/3.8.rst
index a3adf96..0c59ef8 100644
--- a/Doc/whatsnew/3.8.rst
+++ b/Doc/whatsnew/3.8.rst
@@ -1048,17 +1048,33 @@ 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`.
+ TypedDict uses only string keys. By default, every key is required
+ to be present. Specify "total=False" to allow keys to be optional::
+
+ class Location(TypedDict, total=False):
+ lat_long: tuple
+ grid_square: str
+ xy_coordinate: tuple
* Literal types. See :pep:`586` and :class:`typing.Literal`.
+ Literal types indicate that a parameter or return value
+ is constrained to one or more specific literal values::
+
+ def get_status(port: int) -> Literal['connected', 'disconnected']:
+ ...
* "Final" variables, functions, methods and classes. See :pep:`591`,
:class:`typing.Final` and :func:`typing.final`.
+ The final qualifier instructs a static type checker to restrict
+ subclassing, overriding, or reassignment::
+
+ pi: Final[float] = 3.1415926536
+
+* Protocol definitions. See :pep:`544`, :class:`typing.Protocol` and
+ :func:`typing.runtime_checkable`. Simple ABCs like
+ :class:`typing.SupportsInt` are now ``Protocol`` subclasses.
* New protocol class :class:`typing.SupportsIndex`.
@@ -1527,7 +1543,7 @@ Changes in Python behavior
terminate the current thread if called while the interpreter is
finalizing, making them consistent with :c:func:`PyEval_RestoreThread`,
:c:func:`Py_END_ALLOW_THREADS`, and :c:func:`PyGILState_Ensure`. If this
- behaviour is not desired, guard the call by checking :c:func:`_Py_IsFinalizing`
+ behavior is not desired, guard the call by checking :c:func:`_Py_IsFinalizing`
or :c:func:`sys.is_finalizing`.
Changes in the Python API