aboutsummaryrefslogtreecommitdiffstats
path: root/contrib/tools/python3/Lib/subprocess.py
diff options
context:
space:
mode:
authorshadchin <shadchin@yandex-team.com>2025-02-16 15:28:01 +0300
committershadchin <shadchin@yandex-team.com>2025-02-16 16:03:50 +0300
commita27b6a96fdc5ca444428ddef4823d0486dcdccb9 (patch)
treeadde5c24d9ea37e1634e7972e27e682a820ab941 /contrib/tools/python3/Lib/subprocess.py
parent7a3958c3c6de324baab9dba4bd4eb808c1b839a6 (diff)
downloadydb-a27b6a96fdc5ca444428ddef4823d0486dcdccb9.tar.gz
Update Python 3 to 3.12.9
commit_hash:c8651982d81e18f18e037fb247cc6ae53c4fa7f1
Diffstat (limited to 'contrib/tools/python3/Lib/subprocess.py')
-rw-r--r--contrib/tools/python3/Lib/subprocess.py22
1 files changed, 17 insertions, 5 deletions
diff --git a/contrib/tools/python3/Lib/subprocess.py b/contrib/tools/python3/Lib/subprocess.py
index 1d17ae3608..3ec39ca3e6 100644
--- a/contrib/tools/python3/Lib/subprocess.py
+++ b/contrib/tools/python3/Lib/subprocess.py
@@ -43,10 +43,8 @@ getstatusoutput(...): Runs a command in the shell, waits for it to complete,
import builtins
import errno
import io
-import locale
import os
import time
-import signal
import sys
import threading
import warnings
@@ -138,6 +136,8 @@ class CalledProcessError(SubprocessError):
def __str__(self):
if self.returncode and self.returncode < 0:
+ # Lazy import to improve module import time
+ import signal
try:
return "Command '%s' died with %r." % (
self.cmd, signal.Signals(-self.returncode))
@@ -375,12 +375,14 @@ def _text_encoding():
if sys.flags.utf8_mode:
return "utf-8"
else:
+ # Lazy import to improve module import time
+ import locale
return locale.getencoding()
def call(*popenargs, timeout=None, **kwargs):
"""Run command with arguments. Wait for command to complete or
- timeout, then return the returncode attribute.
+ for timeout seconds, then return the returncode attribute.
The arguments are the same as for the Popen constructor. Example:
@@ -517,8 +519,8 @@ def run(*popenargs,
in the returncode attribute, and output & stderr attributes if those streams
were captured.
- If timeout is given, and the process takes too long, a TimeoutExpired
- exception will be raised.
+ If timeout (seconds) is given and the process takes too long,
+ a TimeoutExpired exception will be raised.
There is an optional argument "input", allowing you to
pass bytes or a string to the subprocess's stdin. If you use this argument
@@ -1655,6 +1657,9 @@ class Popen:
# Don't signal a process that we know has already died.
if self.returncode is not None:
return
+
+ # Lazy import to improve module import time
+ import signal
if sig == signal.SIGTERM:
self.terminate()
elif sig == signal.CTRL_C_EVENT:
@@ -1759,6 +1764,9 @@ class Popen:
kwargs = {}
if restore_signals:
+ # Lazy import to improve module import time
+ import signal
+
# See _Py_RestoreSignals() in Python/pylifecycle.c
sigset = []
for signame in ('SIGPIPE', 'SIGXFZ', 'SIGXFSZ'):
@@ -2208,9 +2216,13 @@ class Popen:
def terminate(self):
"""Terminate the process with SIGTERM
"""
+ # Lazy import to improve module import time
+ import signal
self.send_signal(signal.SIGTERM)
def kill(self):
"""Kill the process with SIGKILL
"""
+ # Lazy import to improve module import time
+ import signal
self.send_signal(signal.SIGKILL)