]> granicus.if.org Git - python/commitdiff
bpo-30166: Import command-line parsing modules only when needed. (#1293)
authorSerhiy Storchaka <storchaka@gmail.com>
Thu, 4 May 2017 05:17:47 +0000 (08:17 +0300)
committerGitHub <noreply@github.com>
Thu, 4 May 2017 05:17:47 +0000 (08:17 +0300)
Lib/code.py
Lib/doctest.py
Lib/http/server.py
Lib/idlelib/pyshell.py
Lib/profile.py
Lib/tabnanny.py
Lib/trace.py

index 23295f4cf59610a39df6057695c8077a7498cc74..d8106ae612c4b404c31c36201e6c92072ee5562e 100644 (file)
@@ -7,7 +7,6 @@
 
 import sys
 import traceback
-import argparse
 from codeop import CommandCompiler, compile_command
 
 __all__ = ["InteractiveInterpreter", "InteractiveConsole", "interact",
@@ -303,6 +302,8 @@ def interact(banner=None, readfunc=None, local=None, exitmsg=None):
 
 
 if __name__ == "__main__":
+    import argparse
+
     parser = argparse.ArgumentParser()
     parser.add_argument('-q', action='store_true',
                        help="don't print version and copyright messages")
index 0b78544d8d0ee0f9802be0e372b1cda601b0ed7c..5e5bc21a038670958cd23e26db81cc9b688434c4 100644 (file)
@@ -93,7 +93,6 @@ __all__ = [
 ]
 
 import __future__
-import argparse
 import difflib
 import inspect
 import linecache
@@ -2741,6 +2740,8 @@ __test__ = {"_TestClass": _TestClass,
 
 
 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')
index 429490b73a88b7c1440334a2246fd046d23a190a..7b3e701fb7a76355b1d3cc354fcc09df29c2bab7 100644 (file)
@@ -87,7 +87,6 @@ __all__ = [
     "SimpleHTTPRequestHandler", "CGIHTTPRequestHandler",
 ]
 
-import argparse
 import copy
 import datetime
 import email.utils
@@ -1227,6 +1226,8 @@ def test(HandlerClass=BaseHTTPRequestHandler,
             sys.exit(0)
 
 if __name__ == '__main__':
+    import argparse
+
     parser = argparse.ArgumentParser()
     parser.add_argument('--cgi', action='store_true',
                        help='Run as CGI Server')
index 8ddc18951c7bb4017761aa5fb5300ed93c04f657..5b0e5b267642ab2a127c0b3c1dce632ec540a293 100755 (executable)
@@ -18,11 +18,10 @@ if TkVersion < 8.5:
     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 time
 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 @@ echo "import sys; print(sys.argv)" | idle - "foobar"
 """
 
 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)
index 5d0e9685a4f1aaf7a057eb58d27bd5122b2f6150..5ceeddc075fc6be35bdb9065f0f56a64e417a2b6 100755 (executable)
 
 
 import sys
-import os
 import time
 import marshal
-from optparse import OptionParser
 
 __all__ = ["run", "runctx", "Profile"]
 
@@ -179,7 +177,7 @@ class Profile:
         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 @@ class Profile:
 #****************************************************************************
 
 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
index bfb670c9027d769ece62648c334d0008eca3afce..7973f26f98b8b245de3569580ca57e11736be7e9 100755 (executable)
@@ -22,7 +22,6 @@ __version__ = "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 @@ def errprint(*args):
     sys.stderr.write("\n")
 
 def main():
+    import getopt
+
     global verbose, filename_only
     try:
         opts, args = getopt.getopt(sys.argv[1:], "qv")
index ae154615fa3af4a8f093b761c384e3a1ba1f86ee..e443edd6061bbe507d63f66837226ac19ad1b4e5 100755 (executable)
@@ -48,7 +48,7 @@ Sample use, programmatically
   r.write_results(show_missing=True, coverdir="/tmp")
 """
 __all__ = ['Trace', 'CoverageResults']
-import argparse
+
 import linecache
 import os
 import re
@@ -609,6 +609,7 @@ class Trace:
                                callers=self._callers)
 
 def main():
+    import argparse
 
     parser = argparse.ArgumentParser()
     parser.add_argument('--version', action='version', version='trace 2.0')