More reorganisation of the typing docs (#105787)

This commit is contained in:
Alex Waygood 2023-06-15 06:52:18 +01:00 committed by GitHub
parent 006a453205
commit da911a6b22
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 117 additions and 101 deletions

View File

@ -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,87 +3353,11 @@ 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`
.. _asynchronous-programming:
Aliases to asynchronous 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.
Asynchronous programming
""""""""""""""""""""""""
.. class:: Coroutine(Awaitable[ReturnType], Generic[YieldType, SendType, ReturnType])
Deprecated alias to :class:`collections.abc.Coroutine`.
@ -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:
Context manager types
"""""""""""""""""""""
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:
Aliases to :mod:`contextlib` ABCs
"""""""""""""""""""""""""""""""""
.. class:: ContextManager(Generic[T_co])