https://github.com/python/cpython/commit/b05dd796492160c37c9e15e3882f699f411... commit: b05dd796492160c37c9e15e3882f699f411b3461 branch: main author: Gregory P. Smith <greg@krypto.org> committer: gpshead <greg@krypto.org> date: 2022-09-30T10:45:47-07:00 summary: gh-87597: Document TimeoutExpired.stdout & .stderr types (#97685) This documents the behavior that has always been the case since timeout support was introduced in Python 3.3. files: M Doc/library/subprocess.rst diff --git a/Doc/library/subprocess.rst b/Doc/library/subprocess.rst index 43d6ffceee8f..dee5bd879db5 100644 --- a/Doc/library/subprocess.rst +++ b/Doc/library/subprocess.rst @@ -193,7 +193,10 @@ underlying :class:`Popen` interface can be used directly. .. attribute:: output Output of the child process if it was captured by :func:`run` or - :func:`check_output`. Otherwise, ``None``. + :func:`check_output`. Otherwise, ``None``. This is always + :class:`bytes` when any output was captured regardless of the + ``text=True`` setting. It may remain ``None`` instead of ``b''`` + when no output was observed. .. attribute:: stdout @@ -202,7 +205,9 @@ underlying :class:`Popen` interface can be used directly. .. attribute:: stderr Stderr output of the child process if it was captured by :func:`run`. - Otherwise, ``None``. + Otherwise, ``None``. This is always :class:`bytes` when stderr output + was captured regardless of the ``text=True`` setting. It may remain + ``None`` instead of ``b''`` when no stderr output was observed. .. versionadded:: 3.3