]> granicus.if.org Git - python/commitdiff
bpo-33649: Polish asyncio subprocess and sync docs (GH-9285)
authorCarol Willing <carolcode@willingconsulting.com>
Fri, 14 Sep 2018 01:28:19 +0000 (18:28 -0700)
committerMiss Islington (bot) <31488909+miss-islington@users.noreply.github.com>
Fri, 14 Sep 2018 01:28:19 +0000 (18:28 -0700)
Second pass for asyncio subprocess and sync docs.

https://bugs.python.org/issue33649

Doc/library/asyncio-subprocess.rst
Doc/library/asyncio-sync.rst

index b05c236bb0c8689d54818ddc78ce7e862bb4e177..92c081b70bfccffe96b42208ebba7ba762640eb9 100644 (file)
@@ -62,8 +62,7 @@ Creating Subprocesses
 
    The *limit* argument sets the buffer limit for :class:`StreamReader`
    wrappers for :attr:`Process.stdout` and :attr:`Process.stderr`
-   (if :attr:`subprocess.PIPE` is passed to *stdout* and *stderr*
-   arguments).
+   (if :attr:`subprocess.PIPE` is passed to *stdout* and *stderr* arguments).
 
    Return a :class:`~asyncio.subprocess.Process` instance.
 
@@ -78,15 +77,14 @@ Creating Subprocesses
 
    The *limit* argument sets the buffer limit for :class:`StreamReader`
    wrappers for :attr:`Process.stdout` and :attr:`Process.stderr`
-   (if :attr:`subprocess.PIPE` is passed to *stdout* and *stderr*
-   arguments).
+   (if :attr:`subprocess.PIPE` is passed to *stdout* and *stderr* arguments).
 
    Return a :class:`~asyncio.subprocess.Process` instance.
 
    See the documentation of :meth:`loop.subprocess_shell` for other
    parameters.
 
-.. note::
+.. important::
 
    It is the application's responsibility to ensure that all whitespace and
    metacharacters are quoted appropriately to avoid `shell injection
@@ -98,7 +96,8 @@ Creating Subprocesses
 .. note::
 
    The default event loop that asyncio is pre-configured
-   to use on **Windows** does not support subprocesses.
+   to use on **Windows** does not support subprocesses. Subprocesses are
+   available for Windows if the :class:`ProactorEventLoop` is used.
    See :ref:`Subprocess Support on Windows <asyncio-windows-subprocess>`
    for details.
 
@@ -206,7 +205,7 @@ communicate with them.
       exception is ignored.  This condition occurs when the process
       exits before all data are written into *stdin*.
 
-      If its desired to send data to the process' *stdin*,
+      If it is desired to send data to the process' *stdin*,
       the process needs to be created with ``stdin=PIPE``.  Similarly,
       to get anything other than ``None`` in the result tuple, the
       process has to be created with ``stdout=PIPE`` and/or
@@ -265,8 +264,8 @@ communicate with them.
       Use the :meth:`communicate` method rather than
       :attr:`process.stdin.write() <stdin>`,
       :attr:`await process.stdout.read() <stdout>` or
-      :attr:`await process.stderr.read <stderr>`
-      to avoid deadlocks due to streams pausing reading or writing
+      :attr:`await process.stderr.read <stderr>`.
+      This avoids deadlocks due to streams pausing reading or writing
       and blocking the child process.
 
    .. attribute:: pid
index 8e01ca944083a0bab1217879dea3ce1d1e1424dc..8da5aa81ab9e403c60192c6def7c6e9296405f84 100644 (file)
@@ -13,11 +13,11 @@ those of the :mod:`threading` module with two important caveats:
   be used for OS threads synchronization (use :mod:`threading` for
   that);
 
-* methods of synchronization objects do not accept the *timeout*
+* methods of synchronization primitives do not accept the *timeout*
   argument; use the :func:`asyncio.wait_for` function to perform
   operations with timeouts.
 
-asyncio has the following basic primitives:
+asyncio has the following basic sychronization primitives:
 
 * :class:`Lock`
 * :class:`Event`
@@ -72,7 +72,7 @@ Lock
 
       When the lock is *locked*, reset it to *unlocked* and return.
 
-      If the lock is *unlocked* a :exc:`RuntimeError` is raised.
+      If the lock is *unlocked*, a :exc:`RuntimeError` is raised.
 
    .. method:: locked()
 
@@ -97,7 +97,7 @@ Event
    Example::
 
       async def waiter(event):
-          print('waiting ...')
+          print('waiting for it ...')
           await event.wait()
           print('... got it!')