Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

bpo-33319: Clarify subprocess call docs. #12508

Merged
merged 3 commits into from
Mar 23, 2019
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
25 changes: 13 additions & 12 deletions Doc/library/subprocess.rst
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@ compatibility with older versions, see the :ref:`call-function-trio` section.
If *capture_output* is true, stdout and stderr will be captured.
When used, the internal :class:`Popen` object is automatically created with
``stdout=PIPE`` and ``stderr=PIPE``. The *stdout* and *stderr* arguments may
not be used as well.
not be supplied at the same time as *capture_output*.

The *timeout* argument is passed to :meth:`Popen.communicate`. If the timeout
expires, the child process will be killed and waited for. The
Expand Down Expand Up @@ -1002,14 +1002,14 @@ calls these functions.
Run the command described by *args*. Wait for command to complete, then
return the :attr:`~Popen.returncode` attribute.

This is equivalent to::
Code needing to capture stdout or stderr should use :func:`run` instead:

run(...).returncode

(except that the *input* and *check* parameters are not supported)
To suppress stdout or stderr, supply a value of :data:`DEVNULL`.

The arguments shown above are merely the most
common ones. The full function signature is largely the
The arguments shown above are merely some common ones.
The full function signature is the
same as that of the :class:`Popen` constructor - this function passes all
supplied arguments other than *timeout* directly through to that interface.

Expand All @@ -1030,14 +1030,14 @@ calls these functions.
:exc:`CalledProcessError` object will have the return code in the
:attr:`~CalledProcessError.returncode` attribute.

This is equivalent to::
Code needing to capture stdout or stderr should use :func:`run` instead:

run(..., check=True)

(except that the *input* parameter is not supported)
To suppress stdout or stderr, supply a value of :data:`DEVNULL`.

The arguments shown above are merely the most
common ones. The full function signature is largely the
The arguments shown above are merely some common ones.
The full function signature is the
same as that of the :class:`Popen` constructor - this function passes all
supplied arguments other than *timeout* directly through to that interface.

Expand Down Expand Up @@ -1067,7 +1067,7 @@ calls these functions.

run(..., check=True, stdout=PIPE).stdout

The arguments shown above are merely the most common ones.
The arguments shown above are merely some common ones.
The full function signature is largely the same as that of :func:`run` -
most arguments are passed directly through to that interface.
However, explicitly passing ``input=None`` to inherit the parent's
Expand All @@ -1077,8 +1077,9 @@ calls these functions.
encoding of the output data may depend on the command being invoked, so the
decoding to text will often need to be handled at the application level.

This behaviour may be overridden by setting *universal_newlines* to
``True`` as described above in :ref:`frequently-used-arguments`.
This behaviour may be overridden by setting *text*, *encoding*, *errors*,
or *universal_newlines* to ``True`` as described in
:ref:`frequently-used-arguments` and :func:`run`.

To also capture standard error in the result, use
``stderr=subprocess.STDOUT``::
Expand Down