|
43 | 43 | import builtins
|
44 | 44 | import errno
|
45 | 45 | import io
|
46 |
| -import locale |
47 | 46 | import os
|
48 | 47 | import time
|
49 |
| -import signal |
50 | 48 | import sys
|
51 | 49 | import threading
|
52 | 50 | import warnings
|
@@ -138,6 +136,8 @@ def __init__(self, returncode, cmd, output=None, stderr=None):
|
138 | 136 |
|
139 | 137 | def __str__(self):
|
140 | 138 | if self.returncode and self.returncode < 0:
|
| 139 | + # Lazy import to improve module import time |
| 140 | + import signal |
141 | 141 | try:
|
142 | 142 | return "Command '%s' died with %r." % (
|
143 | 143 | self.cmd, signal.Signals(-self.returncode))
|
@@ -375,6 +375,8 @@ def _text_encoding():
|
375 | 375 | if sys.flags.utf8_mode:
|
376 | 376 | return "utf-8"
|
377 | 377 | else:
|
| 378 | + # Lazy import to improve module import time |
| 379 | + import locale |
378 | 380 | return locale.getencoding()
|
379 | 381 |
|
380 | 382 |
|
@@ -1655,6 +1657,9 @@ def send_signal(self, sig):
|
1655 | 1657 | # Don't signal a process that we know has already died.
|
1656 | 1658 | if self.returncode is not None:
|
1657 | 1659 | return
|
| 1660 | + |
| 1661 | + # Lazy import to improve module import time |
| 1662 | + import signal |
1658 | 1663 | if sig == signal.SIGTERM:
|
1659 | 1664 | self.terminate()
|
1660 | 1665 | elif sig == signal.CTRL_C_EVENT:
|
@@ -1759,6 +1764,9 @@ def _posix_spawn(self, args, executable, env, restore_signals,
|
1759 | 1764 |
|
1760 | 1765 | kwargs = {}
|
1761 | 1766 | if restore_signals:
|
| 1767 | + # Lazy import to improve module import time |
| 1768 | + import signal |
| 1769 | + |
1762 | 1770 | # See _Py_RestoreSignals() in Python/pylifecycle.c
|
1763 | 1771 | sigset = []
|
1764 | 1772 | for signame in ('SIGPIPE', 'SIGXFZ', 'SIGXFSZ'):
|
@@ -2208,9 +2216,13 @@ def send_signal(self, sig):
|
2208 | 2216 | def terminate(self):
|
2209 | 2217 | """Terminate the process with SIGTERM
|
2210 | 2218 | """
|
| 2219 | + # Lazy import to improve module import time |
| 2220 | + import signal |
2211 | 2221 | self.send_signal(signal.SIGTERM)
|
2212 | 2222 |
|
2213 | 2223 | def kill(self):
|
2214 | 2224 | """Kill the process with SIGKILL
|
2215 | 2225 | """
|
| 2226 | + # Lazy import to improve module import time |
| 2227 | + import signal |
2216 | 2228 | self.send_signal(signal.SIGKILL)
|
0 commit comments