Commit f900064a authored by Kyle Stanley's avatar Kyle Stanley Committed by Yury Selivanov

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

parent 320dd504
...@@ -5,6 +5,10 @@ ...@@ -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
......
...@@ -7,6 +7,9 @@ ...@@ -7,6 +7,9 @@
Exceptions Exceptions
========== ==========
**Source code:** :source:`Lib/asyncio/exceptions.py`
----------------------------------------------------
.. exception:: TimeoutError .. exception:: TimeoutError
......
...@@ -7,6 +7,11 @@ ...@@ -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.
......
...@@ -23,6 +23,12 @@ All Platforms ...@@ -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.
......
...@@ -69,6 +69,10 @@ This documentation page contains the following sections: ...@@ -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 ...@@ -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>`.
......
...@@ -6,6 +6,10 @@ ...@@ -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.
......
...@@ -6,6 +6,10 @@ ...@@ -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.
......
...@@ -6,6 +6,11 @@ ...@@ -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.
......
...@@ -6,6 +6,10 @@ ...@@ -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:
......
...@@ -18,9 +18,9 @@ and Tasks. ...@@ -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 ...@@ -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
============== ==============
......
...@@ -4,7 +4,7 @@ ...@@ -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 ...@@ -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/`.
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment