diff options
author | Raymond Hettinger <rhettinger@users.noreply.github.com> | 2019-10-14 06:32:03 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-10-14 06:32:03 (GMT) |
commit | a3291531ea51455cfa5989119db496267425323c (patch) | |
tree | d7b9d94728f3027b472f5460f03fc857de91fcdf /Doc/whatsnew | |
parent | 61a6db5e79921b89b9e2a154990f01f5f3150213 (diff) | |
download | cpython-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')
-rw-r--r-- | Doc/whatsnew/3.8.rst | 26 |
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 |