docs: Add asyncio source code links (GH-16640)

This commit is contained in:
Kyle Stanley 2019-10-10 19:18:46 -04:00 committed by Yury Selivanov
parent 320dd504dd
commit f900064ac4
11 changed files with 54 additions and 4 deletions

View File

@ -5,6 +5,10 @@
Event Loop Event Loop
========== ==========
**Source code:** :source:`Lib/asyncio/events.py`,
:source:`Lib/asyncio/base_events.py`
------------------------------------
.. rubric:: Preface .. rubric:: Preface

View File

@ -7,6 +7,9 @@
Exceptions Exceptions
========== ==========
**Source code:** :source:`Lib/asyncio/exceptions.py`
----------------------------------------------------
.. exception:: TimeoutError .. exception:: TimeoutError

View File

@ -7,6 +7,11 @@
Futures Futures
======= =======
**Source code:** :source:`Lib/asyncio/futures.py`,
:source:`Lib/asyncio/base_futures.py`
-------------------------------------
*Future* objects are used to bridge **low-level callback-based code** *Future* objects are used to bridge **low-level callback-based code**
with high-level async/await code. with high-level async/await code.

View File

@ -23,6 +23,12 @@ All Platforms
Windows Windows
======= =======
**Source code:** :source:`Lib/asyncio/proactor_events.py`,
:source:`Lib/asyncio/windows_events.py`,
:source:`Lib/asyncio/windows_utils.py`
--------------------------------------
.. versionchanged:: 3.8 .. versionchanged:: 3.8
On Windows, :class:`ProactorEventLoop` is now the default event loop. On Windows, :class:`ProactorEventLoop` is now the default event loop.

View File

@ -69,6 +69,10 @@ This documentation page contains the following sections:
Transports Transports
========== ==========
**Source code:** :source:`Lib/asyncio/transports.py`
----------------------------------------------------
Transports are classes provided by :mod:`asyncio` in order to abstract Transports are classes provided by :mod:`asyncio` in order to abstract
various kinds of communication channels. various kinds of communication channels.
@ -431,6 +435,10 @@ Subprocess Transports
Protocols Protocols
========= =========
**Source code:** :source:`Lib/asyncio/protocols.py`
---------------------------------------------------
asyncio provides a set of abstract base classes that should be used asyncio provides a set of abstract base classes that should be used
to implement network protocols. Those classes are meant to be used to implement network protocols. Those classes are meant to be used
together with :ref:`transports <asyncio-transport>`. together with :ref:`transports <asyncio-transport>`.

View File

@ -6,6 +6,10 @@
Queues Queues
====== ======
**Source code:** :source:`Lib/asyncio/queues.py`
------------------------------------------------
asyncio queues are designed to be similar to classes of the asyncio queues are designed to be similar to classes of the
:mod:`queue` module. Although asyncio queues are not thread-safe, :mod:`queue` module. Although asyncio queues are not thread-safe,
they are designed to be used specifically in async/await code. they are designed to be used specifically in async/await code.

View File

@ -6,6 +6,10 @@
Streams Streams
======= =======
**Source code:** :source:`Lib/asyncio/streams.py`
-------------------------------------------------
Streams are high-level async/await-ready primitives to work with Streams are high-level async/await-ready primitives to work with
network connections. Streams allow sending and receiving data without network connections. Streams allow sending and receiving data without
using callbacks or low-level protocols and transports. using callbacks or low-level protocols and transports.

View File

@ -6,6 +6,11 @@
Subprocesses Subprocesses
============ ============
**Source code:** :source:`Lib/asyncio/subprocess.py`,
:source:`Lib/asyncio/base_subprocess.py`
----------------------------------------
This section describes high-level async/await asyncio APIs to This section describes high-level async/await asyncio APIs to
create and manage subprocesses. create and manage subprocesses.

View File

@ -6,6 +6,10 @@
Synchronization Primitives Synchronization Primitives
========================== ==========================
**Source code:** :source:`Lib/asyncio/locks.py`
-----------------------------------------------
asyncio synchronization primitives are designed to be similar to asyncio synchronization primitives are designed to be similar to
those of the :mod:`threading` module with two important caveats: those of the :mod:`threading` module with two important caveats:

View File

@ -18,9 +18,9 @@ and Tasks.
Coroutines Coroutines
========== ==========
Coroutines declared with async/await syntax is the preferred way of :term:`Coroutines <coroutine>` declared with the async/await syntax is the
writing asyncio applications. For example, the following snippet preferred way of writing asyncio applications. For example, the following
of code (requires Python 3.7+) prints "hello", waits 1 second, snippet of code (requires Python 3.7+) prints "hello", waits 1 second,
and then prints "world":: and then prints "world"::
>>> import asyncio >>> import asyncio
@ -240,6 +240,10 @@ Running an asyncio Program
.. versionchanged:: 3.9 .. versionchanged:: 3.9
Updated to use :meth:`loop.shutdown_default_executor`. Updated to use :meth:`loop.shutdown_default_executor`.
.. note::
The source code for ``asyncio.run()`` can be found in
:source:`Lib/asyncio/runners.py`.
Creating Tasks Creating Tasks
============== ==============

View File

@ -4,7 +4,7 @@
.. module:: asyncio .. module:: asyncio
:synopsis: Asynchronous I/O. :synopsis: Asynchronous I/O.
-------------- -------------------------------
.. sidebar:: Hello World! .. sidebar:: Hello World!
@ -91,3 +91,6 @@ Additionally, there are **low-level** APIs for
asyncio-api-index.rst asyncio-api-index.rst
asyncio-llapi-index.rst asyncio-llapi-index.rst
asyncio-dev.rst asyncio-dev.rst
.. note::
The source code for asyncio can be found in :source:`Lib/asyncio/`.