bpo-30166: Import command-line parsing modules only when needed. (#1293)
diff --git a/Lib/code.py b/Lib/code.py
index 23295f4..d8106ae 100644
--- a/Lib/code.py
+++ b/Lib/code.py
@@ -7,7 +7,6 @@
import sys
import traceback
-import argparse
from codeop import CommandCompiler, compile_command
__all__ = ["InteractiveInterpreter", "InteractiveConsole", "interact",
@@ -303,6 +302,8 @@
if __name__ == "__main__":
+ import argparse
+
parser = argparse.ArgumentParser()
parser.add_argument('-q', action='store_true',
help="don't print version and copyright messages")
diff --git a/Lib/doctest.py b/Lib/doctest.py
index 0b78544..5e5bc21 100644
--- a/Lib/doctest.py
+++ b/Lib/doctest.py
@@ -93,7 +93,6 @@
]
import __future__
-import argparse
import difflib
import inspect
import linecache
@@ -2741,6 +2740,8 @@
def _test():
+ import argparse
+
parser = argparse.ArgumentParser(description="doctest runner")
parser.add_argument('-v', '--verbose', action='store_true', default=False,
help='print very verbose output for all tests')
diff --git a/Lib/http/server.py b/Lib/http/server.py
index 429490b..7b3e701 100644
--- a/Lib/http/server.py
+++ b/Lib/http/server.py
@@ -87,7 +87,6 @@
"SimpleHTTPRequestHandler", "CGIHTTPRequestHandler",
]
-import argparse
import copy
import datetime
import email.utils
@@ -1227,6 +1226,8 @@
sys.exit(0)
if __name__ == '__main__':
+ import argparse
+
parser = argparse.ArgumentParser()
parser.add_argument('--cgi', action='store_true',
help='Run as CGI Server')
diff --git a/Lib/idlelib/pyshell.py b/Lib/idlelib/pyshell.py
index 8ddc189..5b0e5b2 100755
--- a/Lib/idlelib/pyshell.py
+++ b/Lib/idlelib/pyshell.py
@@ -18,11 +18,10 @@
raise SystemExit(1)
from code import InteractiveInterpreter
-import getopt
import linecache
import os
import os.path
-from platform import python_version, system
+from platform import python_version
import re
import socket
import subprocess
@@ -31,14 +30,12 @@
import tokenize
import warnings
-from idlelib import testing # bool value
from idlelib.colorizer import ColorDelegator
from idlelib.config import idleConf
from idlelib import debugger
from idlelib import debugger_r
from idlelib.editor import EditorWindow, fixwordbreaks
from idlelib.filelist import FileList
-from idlelib import macosx
from idlelib.outwin import OutputWindow
from idlelib import rpc
from idlelib.run import idle_formatwarning, PseudoInputFile, PseudoOutputFile
@@ -1371,6 +1368,11 @@
"""
def main():
+ import getopt
+ from platform import system
+ from idlelib import testing # bool value
+ from idlelib import macosx
+
global flist, root, use_subprocess
capture_warnings(True)
diff --git a/Lib/profile.py b/Lib/profile.py
index 5d0e968..5ceeddc 100755
--- a/Lib/profile.py
+++ b/Lib/profile.py
@@ -25,10 +25,8 @@
import sys
-import os
import time
import marshal
-from optparse import OptionParser
__all__ = ["run", "runctx", "Profile"]
@@ -179,7 +177,7 @@
self.t = self.get_time()
self.simulate_call('profiler')
- # Heavily optimized dispatch routine for os.times() timer
+ # Heavily optimized dispatch routine for time.process_time() timer
def trace_dispatch(self, frame, event, arg):
timer = self.timer
@@ -552,6 +550,9 @@
#****************************************************************************
def main():
+ import os
+ from optparse import OptionParser
+
usage = "profile.py [-o output_file_path] [-s sort] scriptfile [arg] ..."
parser = OptionParser(usage=usage)
parser.allow_interspersed_args = False
diff --git a/Lib/tabnanny.py b/Lib/tabnanny.py
index bfb670c..7973f26 100755
--- a/Lib/tabnanny.py
+++ b/Lib/tabnanny.py
@@ -22,7 +22,6 @@
import os
import sys
-import getopt
import tokenize
if not hasattr(tokenize, 'NL'):
raise ValueError("tokenize.NL doesn't exist -- tokenize module too old")
@@ -40,6 +39,8 @@
sys.stderr.write("\n")
def main():
+ import getopt
+
global verbose, filename_only
try:
opts, args = getopt.getopt(sys.argv[1:], "qv")
diff --git a/Lib/trace.py b/Lib/trace.py
index ae15461..e443edd 100755
--- a/Lib/trace.py
+++ b/Lib/trace.py
@@ -48,7 +48,7 @@
r.write_results(show_missing=True, coverdir="/tmp")
"""
__all__ = ['Trace', 'CoverageResults']
-import argparse
+
import linecache
import os
import re
@@ -609,6 +609,7 @@
callers=self._callers)
def main():
+ import argparse
parser = argparse.ArgumentParser()
parser.add_argument('--version', action='version', version='trace 2.0')