summaryrefslogtreecommitdiffstats
path: root/Lib/subprocess.py
diff options
context:
space:
mode:
authorNadeshiko Manju <me@manjusaka.me>2025-05-05 01:15:31 (GMT)
committerGitHub <noreply@github.com>2025-05-05 01:15:31 (GMT)
commit2bbcaedb75942389dacb51866948f40de5951c9c (patch)
tree653df3a0075990aae5695d7b61addfc47a062062 /Lib/subprocess.py
parent51d2459e4d70e9a6551d053b2492f9405a6d9f17 (diff)
downloadcpython-2bbcaedb75942389dacb51866948f40de5951c9c.zip
cpython-2bbcaedb75942389dacb51866948f40de5951c9c.tar.gz
cpython-2bbcaedb75942389dacb51866948f40de5951c9c.tar.bz2
gh-133089: Use original timeout value for `TimeoutExpired` when the func `subprocess.run` is called with a timeout (GH-133103)
Signed-off-by: Manjusaka <me@manjusaka.me> Co-authored-by: Gregory P. Smith <greg@krypto.org>
Diffstat (limited to 'Lib/subprocess.py')
-rw-r--r--Lib/subprocess.py14
1 files changed, 10 insertions, 4 deletions
diff --git a/Lib/subprocess.py b/Lib/subprocess.py
index da5f572..54c2eb5 100644
--- a/Lib/subprocess.py
+++ b/Lib/subprocess.py
@@ -1235,8 +1235,11 @@ class Popen:
finally:
self._communication_started = True
-
- sts = self.wait(timeout=self._remaining_time(endtime))
+ try:
+ sts = self.wait(timeout=self._remaining_time(endtime))
+ except TimeoutExpired as exc:
+ exc.timeout = timeout
+ raise
return (stdout, stderr)
@@ -2145,8 +2148,11 @@ class Popen:
selector.unregister(key.fileobj)
key.fileobj.close()
self._fileobj2output[key.fileobj].append(data)
-
- self.wait(timeout=self._remaining_time(endtime))
+ try:
+ self.wait(timeout=self._remaining_time(endtime))
+ except TimeoutExpired as exc:
+ exc.timeout = orig_timeout
+ raise
# All data exchanged. Translate lists into strings.
if stdout is not None: