Skip to content

Commit 7e4db2f

Browse files
bpo-30166: Import command-line parsing modules only when needed. (python#1293)
1 parent 1c4670e commit 7e4db2f

File tree

7 files changed

+20
-12
lines changed

7 files changed

+20
-12
lines changed

Lib/code.py

+2-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@
77

88
import sys
99
import traceback
10-
import argparse
1110
from codeop import CommandCompiler, compile_command
1211

1312
__all__ = ["InteractiveInterpreter", "InteractiveConsole", "interact",
@@ -303,6 +302,8 @@ def interact(banner=None, readfunc=None, local=None, exitmsg=None):
303302

304303

305304
if __name__ == "__main__":
305+
import argparse
306+
306307
parser = argparse.ArgumentParser()
307308
parser.add_argument('-q', action='store_true',
308309
help="don't print version and copyright messages")

Lib/doctest.py

+2-1
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,6 @@ def _test():
9393
]
9494

9595
import __future__
96-
import argparse
9796
import difflib
9897
import inspect
9998
import linecache
@@ -2741,6 +2740,8 @@ def get(self):
27412740

27422741

27432742
def _test():
2743+
import argparse
2744+
27442745
parser = argparse.ArgumentParser(description="doctest runner")
27452746
parser.add_argument('-v', '--verbose', action='store_true', default=False,
27462747
help='print very verbose output for all tests')

Lib/http/server.py

+2-1
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,6 @@
8787
"SimpleHTTPRequestHandler", "CGIHTTPRequestHandler",
8888
]
8989

90-
import argparse
9190
import copy
9291
import datetime
9392
import email.utils
@@ -1227,6 +1226,8 @@ def test(HandlerClass=BaseHTTPRequestHandler,
12271226
sys.exit(0)
12281227

12291228
if __name__ == '__main__':
1229+
import argparse
1230+
12301231
parser = argparse.ArgumentParser()
12311232
parser.add_argument('--cgi', action='store_true',
12321233
help='Run as CGI Server')

Lib/idlelib/pyshell.py

+6-4
Original file line numberDiff line numberDiff line change
@@ -18,11 +18,10 @@
1818
raise SystemExit(1)
1919

2020
from code import InteractiveInterpreter
21-
import getopt
2221
import linecache
2322
import os
2423
import os.path
25-
from platform import python_version, system
24+
from platform import python_version
2625
import re
2726
import socket
2827
import subprocess
@@ -31,14 +30,12 @@
3130
import tokenize
3231
import warnings
3332

34-
from idlelib import testing # bool value
3533
from idlelib.colorizer import ColorDelegator
3634
from idlelib.config import idleConf
3735
from idlelib import debugger
3836
from idlelib import debugger_r
3937
from idlelib.editor import EditorWindow, fixwordbreaks
4038
from idlelib.filelist import FileList
41-
from idlelib import macosx
4239
from idlelib.outwin import OutputWindow
4340
from idlelib import rpc
4441
from idlelib.run import idle_formatwarning, PseudoInputFile, PseudoOutputFile
@@ -1371,6 +1368,11 @@ def fix_x11_paste(root):
13711368
"""
13721369

13731370
def main():
1371+
import getopt
1372+
from platform import system
1373+
from idlelib import testing # bool value
1374+
from idlelib import macosx
1375+
13741376
global flist, root, use_subprocess
13751377

13761378
capture_warnings(True)

Lib/profile.py

+4-3
Original file line numberDiff line numberDiff line change
@@ -25,10 +25,8 @@
2525

2626

2727
import sys
28-
import os
2928
import time
3029
import marshal
31-
from optparse import OptionParser
3230

3331
__all__ = ["run", "runctx", "Profile"]
3432

@@ -179,7 +177,7 @@ def get_time_timer(timer=timer, sum=sum):
179177
self.t = self.get_time()
180178
self.simulate_call('profiler')
181179

182-
# Heavily optimized dispatch routine for os.times() timer
180+
# Heavily optimized dispatch routine for time.process_time() timer
183181

184182
def trace_dispatch(self, frame, event, arg):
185183
timer = self.timer
@@ -552,6 +550,9 @@ def f(m, f1=f1):
552550
#****************************************************************************
553551

554552
def main():
553+
import os
554+
from optparse import OptionParser
555+
555556
usage = "profile.py [-o output_file_path] [-s sort] scriptfile [arg] ..."
556557
parser = OptionParser(usage=usage)
557558
parser.allow_interspersed_args = False

Lib/tabnanny.py

+2-1
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,6 @@
2222

2323
import os
2424
import sys
25-
import getopt
2625
import tokenize
2726
if not hasattr(tokenize, 'NL'):
2827
raise ValueError("tokenize.NL doesn't exist -- tokenize module too old")
@@ -40,6 +39,8 @@ def errprint(*args):
4039
sys.stderr.write("\n")
4140

4241
def main():
42+
import getopt
43+
4344
global verbose, filename_only
4445
try:
4546
opts, args = getopt.getopt(sys.argv[1:], "qv")

Lib/trace.py

+2-1
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@
4848
r.write_results(show_missing=True, coverdir="/tmp")
4949
"""
5050
__all__ = ['Trace', 'CoverageResults']
51-
import argparse
51+
5252
import linecache
5353
import os
5454
import re
@@ -609,6 +609,7 @@ def results(self):
609609
callers=self._callers)
610610

611611
def main():
612+
import argparse
612613

613614
parser = argparse.ArgumentParser()
614615
parser.add_argument('--version', action='version', version='trace 2.0')

0 commit comments

Comments
 (0)