summaryrefslogtreecommitdiffstats
path: root/Doc/library/typing.rst
diff options
context:
space:
mode:
authorAlex Waygood <Alex.Waygood@Gmail.com>2023-06-15 05:52:18 (GMT)
committerGitHub <noreply@github.com>2023-06-15 05:52:18 (GMT)
commitda911a6b226ca47cc15088d800b575e19a731f1c (patch)
tree572af3ca6150b3493a344f567fec16c7f0519847 /Doc/library/typing.rst
parent006a4532058f1fadba93283c0f45b0d82735b364 (diff)
downloadcpython-da911a6b226ca47cc15088d800b575e19a731f1c.zip
cpython-da911a6b226ca47cc15088d800b575e19a731f1c.tar.gz
cpython-da911a6b226ca47cc15088d800b575e19a731f1c.tar.bz2
More reorganisation of the typing docs (#105787)
Diffstat (limited to 'Doc/library/typing.rst')
-rw-r--r--Doc/library/typing.rst218
1 files changed, 117 insertions, 101 deletions
diff --git a/Doc/library/typing.rst b/Doc/library/typing.rst
index 859700e..77cc6bc 100644
--- a/Doc/library/typing.rst
+++ b/Doc/library/typing.rst
@@ -2433,6 +2433,18 @@ These protocols are decorated with :func:`runtime_checkable`.
An ABC with one abstract method ``__round__``
that is covariant in its return type.
+ABCs for working with IO
+------------------------
+
+.. class:: IO
+ TextIO
+ BinaryIO
+
+ Generic type ``IO[AnyStr]`` and its subclasses ``TextIO(IO[str])``
+ and ``BinaryIO(IO[bytes])``
+ represent the types of I/O streams such as returned by
+ :func:`open`.
+
Functions and decorators
------------------------
@@ -3052,11 +3064,15 @@ Constant
.. versionadded:: 3.5.2
-Generic concrete collections
-----------------------------
+.. _generic-concrete-collections:
-Corresponding to built-in types
-"""""""""""""""""""""""""""""""
+Deprecated aliases
+------------------
+
+.. _corresponding-to-built-in-types:
+
+Aliases to built-in types
+"""""""""""""""""""""""""
.. class:: Dict(dict, MutableMapping[KT, VT])
@@ -3118,8 +3134,10 @@ Corresponding to built-in types
.. note:: :data:`Tuple` is a special form.
-Corresponding to types in :mod:`collections`
-""""""""""""""""""""""""""""""""""""""""""""
+.. _corresponding-to-types-in-collections:
+
+Aliases to types in :mod:`collections`
+""""""""""""""""""""""""""""""""""""""
.. class:: DefaultDict(collections.defaultdict, MutableMapping[KT, VT])
@@ -3174,17 +3192,10 @@ Corresponding to types in :mod:`collections`
:class:`collections.deque` now supports subscripting (``[]``).
See :pep:`585` and :ref:`types-genericalias`.
-Other concrete types
-""""""""""""""""""""
+.. _other-concrete-types:
-.. class:: IO
- TextIO
- BinaryIO
-
- Generic type ``IO[AnyStr]`` and its subclasses ``TextIO(IO[str])``
- and ``BinaryIO(IO[bytes])``
- represent the types of I/O streams such as returned by
- :func:`open`.
+Aliases to other concrete types
+"""""""""""""""""""""""""""""""
.. class:: Pattern
Match
@@ -3223,11 +3234,11 @@ Other concrete types
currently planned, but users are encouraged to use
:class:`str` instead of ``Text``.
-Abstract Base Classes
----------------------
+.. _abstract-base-classes:
+.. _corresponding-to-collections-in-collections-abc:
-Corresponding to collections in :mod:`collections.abc`
-""""""""""""""""""""""""""""""""""""""""""""""""""""""
+Aliases to container ABCs in :mod:`collections.abc`
+"""""""""""""""""""""""""""""""""""""""""""""""""""
.. class:: AbstractSet(Collection[T_co])
@@ -3342,86 +3353,10 @@ Corresponding to collections in :mod:`collections.abc`
:class:`collections.abc.ValuesView` now supports subscripting (``[]``).
See :pep:`585` and :ref:`types-genericalias`.
-Corresponding to other types in :mod:`collections.abc`
-""""""""""""""""""""""""""""""""""""""""""""""""""""""
-
-.. class:: Iterable(Generic[T_co])
-
- Deprecated alias to :class:`collections.abc.Iterable`.
-
- .. deprecated:: 3.9
- :class:`collections.abc.Iterable` now supports subscripting (``[]``).
- See :pep:`585` and :ref:`types-genericalias`.
-
-.. class:: Iterator(Iterable[T_co])
-
- Deprecated alias to :class:`collections.abc.Iterator`.
-
- .. deprecated:: 3.9
- :class:`collections.abc.Iterator` now supports subscripting (``[]``).
- See :pep:`585` and :ref:`types-genericalias`.
-
-.. class:: Generator(Iterator[YieldType], Generic[YieldType, SendType, ReturnType])
-
- Deprecated alias to :class:`collections.abc.Generator`.
-
- A generator can be annotated by the generic type
- ``Generator[YieldType, SendType, ReturnType]``. For example::
-
- def echo_round() -> Generator[int, float, str]:
- sent = yield 0
- while sent >= 0:
- sent = yield round(sent)
- return 'Done'
-
- Note that unlike many other generics in the typing module, the ``SendType``
- of :class:`Generator` behaves contravariantly, not covariantly or
- invariantly.
-
- If your generator will only yield values, set the ``SendType`` and
- ``ReturnType`` to ``None``::
-
- def infinite_stream(start: int) -> Generator[int, None, None]:
- while True:
- yield start
- start += 1
-
- Alternatively, annotate your generator as having a return type of
- either ``Iterable[YieldType]`` or ``Iterator[YieldType]``::
-
- def infinite_stream(start: int) -> Iterator[int]:
- while True:
- yield start
- start += 1
-
- .. deprecated:: 3.9
- :class:`collections.abc.Generator` now supports subscripting (``[]``).
- See :pep:`585` and :ref:`types-genericalias`.
-
-.. class:: Hashable
-
- Deprecated alias to :class:`collections.abc.Hashable`.
-
- .. deprecated:: 3.12
- Use :class:`collections.abc.Hashable` directly instead.
-
-.. class:: Reversible(Iterable[T_co])
-
- Deprecated alias to :class:`collections.abc.Reversible`.
+.. _asynchronous-programming:
- .. deprecated:: 3.9
- :class:`collections.abc.Reversible` now supports subscripting (``[]``).
- See :pep:`585` and :ref:`types-genericalias`.
-
-.. class:: Sized
-
- Deprecated alias to :class:`collections.abc.Sized`.
-
- .. deprecated:: 3.12
- Use :class:`collections.abc.Sized` directly instead.
-
-Asynchronous programming
-""""""""""""""""""""""""
+Aliases to asynchronous ABCs in :mod:`collections.abc`
+""""""""""""""""""""""""""""""""""""""""""""""""""""""
.. class:: Coroutine(Awaitable[ReturnType], Generic[YieldType, SendType, ReturnType])
@@ -3512,9 +3447,90 @@ Asynchronous programming
:class:`collections.abc.Awaitable` now supports subscripting (``[]``).
See :pep:`585` and :ref:`types-genericalias`.
+.. _corresponding-to-other-types-in-collections-abc:
+
+Aliases to other ABCs in :mod:`collections.abc`
+"""""""""""""""""""""""""""""""""""""""""""""""
+
+.. class:: Iterable(Generic[T_co])
+
+ Deprecated alias to :class:`collections.abc.Iterable`.
+
+ .. deprecated:: 3.9
+ :class:`collections.abc.Iterable` now supports subscripting (``[]``).
+ See :pep:`585` and :ref:`types-genericalias`.
+
+.. class:: Iterator(Iterable[T_co])
+
+ Deprecated alias to :class:`collections.abc.Iterator`.
+
+ .. deprecated:: 3.9
+ :class:`collections.abc.Iterator` now supports subscripting (``[]``).
+ See :pep:`585` and :ref:`types-genericalias`.
+
+.. class:: Generator(Iterator[YieldType], Generic[YieldType, SendType, ReturnType])
+
+ Deprecated alias to :class:`collections.abc.Generator`.
+
+ A generator can be annotated by the generic type
+ ``Generator[YieldType, SendType, ReturnType]``. For example::
+
+ def echo_round() -> Generator[int, float, str]:
+ sent = yield 0
+ while sent >= 0:
+ sent = yield round(sent)
+ return 'Done'
+
+ Note that unlike many other generics in the typing module, the ``SendType``
+ of :class:`Generator` behaves contravariantly, not covariantly or
+ invariantly.
+
+ If your generator will only yield values, set the ``SendType`` and
+ ``ReturnType`` to ``None``::
+
+ def infinite_stream(start: int) -> Generator[int, None, None]:
+ while True:
+ yield start
+ start += 1
+
+ Alternatively, annotate your generator as having a return type of
+ either ``Iterable[YieldType]`` or ``Iterator[YieldType]``::
+
+ def infinite_stream(start: int) -> Iterator[int]:
+ while True:
+ yield start
+ start += 1
+
+ .. deprecated:: 3.9
+ :class:`collections.abc.Generator` now supports subscripting (``[]``).
+ See :pep:`585` and :ref:`types-genericalias`.
+
+.. class:: Hashable
+
+ Deprecated alias to :class:`collections.abc.Hashable`.
+
+ .. deprecated:: 3.12
+ Use :class:`collections.abc.Hashable` directly instead.
+
+.. class:: Reversible(Iterable[T_co])
+
+ Deprecated alias to :class:`collections.abc.Reversible`.
+
+ .. deprecated:: 3.9
+ :class:`collections.abc.Reversible` now supports subscripting (``[]``).
+ See :pep:`585` and :ref:`types-genericalias`.
+
+.. class:: Sized
+
+ Deprecated alias to :class:`collections.abc.Sized`.
+
+ .. deprecated:: 3.12
+ Use :class:`collections.abc.Sized` directly instead.
+
+.. _context-manager-types:
-Context manager types
-"""""""""""""""""""""
+Aliases to :mod:`contextlib` ABCs
+"""""""""""""""""""""""""""""""""
.. class:: ContextManager(Generic[T_co])