gh-141571: argparse: avoid redundant early _set_color() call in HelpFormatter.__…#141609
Closed
chillakalyan wants to merge 2 commits intopython:mainfrom
Closed
gh-141571: argparse: avoid redundant early _set_color() call in HelpFormatter.__…#141609chillakalyan wants to merge 2 commits intopython:mainfrom
chillakalyan wants to merge 2 commits intopython:mainfrom
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fixes: #141571
argparse currently initializes color twice when constructing a
HelpFormatter:
using the default value color=True.
calls formatter._set_color(self.color) again.
The first initialization is redundant and causes duplicate environment
lookups and repeated calls to colorize.can_colorize(), especially when
color=False. The actual color configuration only needs to happen once,
and the correct location is inside _get_formatter(), where formatter
instances are created.
This patch removes the early invocation of _set_color() in
HelpFormatter.init and simply stores the requested color preference:
self._color = colorThe color initialization continues to happen once in
_get_formatter():
formatter._set_color(self.color)This preserves the existing behavior for all consumers while avoiding
unnecessary work during HelpFormatter construction.