Skip to content

Commit 831695b

Browse files
miss-islingtongpsheadpicnixz
authored
[3.13] gh-118761: Revert "Improve import time of subprocess (GH-129427)" (GH-130201) (#130204)
gh-118761: Revert "Improve import time of `subprocess` (GH-129427)" (GH-130201) * Revert "gh-118761: Improve import time of `subprocess` (GH-129427)" This reverts commit 49f2465. Also known as f502c8f in 3.13 (PR GH-129447) Also known as f65aa0d in 3.12 (PR GH-129448) This caused bugs in the `__del__` finalizer: #118761 (comment) --------- (cherry picked from commit ae30646) Co-authored-by: Gregory P. Smith <[email protected]> Co-authored-by: Bénédikt Tran <[email protected]>
1 parent 2fcad2a commit 831695b

File tree

2 files changed

+6
-14
lines changed

2 files changed

+6
-14
lines changed

Lib/subprocess.py

+2-14
Original file line numberDiff line numberDiff line change
@@ -43,8 +43,10 @@
4343
import builtins
4444
import errno
4545
import io
46+
import locale
4647
import os
4748
import time
49+
import signal
4850
import sys
4951
import threading
5052
import warnings
@@ -142,8 +144,6 @@ def __init__(self, returncode, cmd, output=None, stderr=None):
142144

143145
def __str__(self):
144146
if self.returncode and self.returncode < 0:
145-
# Lazy import to improve module import time
146-
import signal
147147
try:
148148
return "Command '%s' died with %r." % (
149149
self.cmd, signal.Signals(-self.returncode))
@@ -381,8 +381,6 @@ def _text_encoding():
381381
if sys.flags.utf8_mode:
382382
return "utf-8"
383383
else:
384-
# Lazy import to improve module import time
385-
import locale
386384
return locale.getencoding()
387385

388386

@@ -1667,9 +1665,6 @@ def send_signal(self, sig):
16671665
# Don't signal a process that we know has already died.
16681666
if self.returncode is not None:
16691667
return
1670-
1671-
# Lazy import to improve module import time
1672-
import signal
16731668
if sig == signal.SIGTERM:
16741669
self.terminate()
16751670
elif sig == signal.CTRL_C_EVENT:
@@ -1771,9 +1766,6 @@ def _posix_spawn(self, args, executable, env, restore_signals, close_fds,
17711766
"""Execute program using os.posix_spawn()."""
17721767
kwargs = {}
17731768
if restore_signals:
1774-
# Lazy import to improve module import time
1775-
import signal
1776-
17771769
# See _Py_RestoreSignals() in Python/pylifecycle.c
17781770
sigset = []
17791771
for signame in ('SIGPIPE', 'SIGXFZ', 'SIGXFSZ'):
@@ -2223,13 +2215,9 @@ def send_signal(self, sig):
22232215
def terminate(self):
22242216
"""Terminate the process with SIGTERM
22252217
"""
2226-
# Lazy import to improve module import time
2227-
import signal
22282218
self.send_signal(signal.SIGTERM)
22292219

22302220
def kill(self):
22312221
"""Kill the process with SIGKILL
22322222
"""
2233-
# Lazy import to improve module import time
2234-
import signal
22352223
self.send_signal(signal.SIGKILL)
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
Reverts a change in the previous release attempting to make some stdlib
2+
imports used within the :mod:`subprocess` module lazy as this was causing
3+
errors during ``__del__`` finalizers calling methods such as ``terminate``, or
4+
``kill``, or ``send_signal``.

0 commit comments

Comments
 (0)