[Python-checkins] Defer import of shutil which only needed for help and usage (GH-17334)

Raymond Hettinger webhook-mailer at python.org
Fri Nov 22 01:52:07 EST 2019


https://github.com/python/cpython/commit/b4e5eeac267c436bb60776dc5be771d3259bd298
commit: b4e5eeac267c436bb60776dc5be771d3259bd298
branch: master
author: Raymond Hettinger <rhettinger at users.noreply.github.com>
committer: GitHub <noreply at github.com>
date: 2019-11-21T22:51:45-08:00
summary:

Defer import of shutil which only needed for help and usage (GH-17334)

files:
M Lib/argparse.py

diff --git a/Lib/argparse.py b/Lib/argparse.py
index 5a8eff2f4cc89..5d3ce2ad709f0 100644
--- a/Lib/argparse.py
+++ b/Lib/argparse.py
@@ -87,7 +87,6 @@
 
 import os as _os
 import re as _re
-import shutil as _shutil
 import sys as _sys
 
 from gettext import gettext as _, ngettext
@@ -167,7 +166,8 @@ def __init__(self,
 
         # default setting for width
         if width is None:
-            width = _shutil.get_terminal_size().columns
+            import shutil
+            width = shutil.get_terminal_size().columns
             width -= 2
 
         self._prog = prog
@@ -264,7 +264,7 @@ def add_argument(self, action):
                 invocations.append(get_invocation(subaction))
 
             # update the maximum item length
-            invocation_length = max([len(s) for s in invocations])
+            invocation_length = max(map(len, invocations))
             action_length = invocation_length + self._current_indent
             self._action_max_length = max(self._action_max_length,
                                           action_length)



More information about the Python-checkins mailing list