gh-118761: Redudce the import time of `optparse` (#128899)

The same change was made, and for the same reason, by ``argparse`` back in
2017. The ``textwrap`` module is only used when printing help text, so most
invocations will never need it imported.

Co-authored-by: Adam Turner <9087854+AA-Turner@users.noreply.github.com>
This commit is contained in:
Eli Schwartz 2025-01-19 19:03:19 -05:00 committed by GitHub
parent c9c9fcb8fc
commit 3b6a27c560
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 4 additions and 1 deletions

View file

@ -74,7 +74,6 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
"""
import sys, os
import textwrap
from gettext import gettext as _, ngettext
@ -252,6 +251,7 @@ class HelpFormatter:
Format a paragraph of free-form text for inclusion in the
help output at the current indentation level.
"""
import textwrap
text_width = max(self.width - self.current_indent, 11)
indent = " "*self.current_indent
return textwrap.fill(text,
@ -308,6 +308,7 @@ class HelpFormatter:
indent_first = 0
result.append(opts)
if option.help:
import textwrap
help_text = self.expand_default(option)
help_lines = textwrap.wrap(help_text, self.help_width)
result.append("%*s%s\n" % (indent_first, "", help_lines[0]))

View file

@ -0,0 +1,2 @@
Reduce the import time of :mod:`optparse` when no help text is printed.
Patch by Eli Schwartz.