From 39e2304136f22acf71694891a8b26df9a67f046b Mon Sep 17 00:00:00 2001 From: "Gregory P. Smith" Date: Fri, 30 Sep 2022 10:45:47 -0700 Subject: [PATCH] gh-87597: Document TimeoutExpired.stdout & .stderr types (GH-97685) This documents the behavior that has always been the case since timeout support was introduced in Python 3.3. (cherry picked from commit b05dd796492160c37c9e15e3882f699f411b3461) Co-authored-by: Gregory P. Smith --- Doc/library/subprocess.rst | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/Doc/library/subprocess.rst b/Doc/library/subprocess.rst index 45fcfc79522c80..f35a8204ce0362 100644 --- a/Doc/library/subprocess.rst +++ b/Doc/library/subprocess.rst @@ -192,7 +192,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 @@ -201,7 +204,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