diff --git a/doc/whatsnew/fragments/9608.performance b/doc/whatsnew/fragments/9608.performance new file mode 100644 index 00000000000..12bdd0b34bb --- /dev/null +++ b/doc/whatsnew/fragments/9608.performance @@ -0,0 +1,3 @@ +An internal check for ``trailing-comma-tuple`` being enabled or not is now done once instead of once for each token. + +Refs #9608. diff --git a/pylint/checkers/refactoring/refactoring_checker.py b/pylint/checkers/refactoring/refactoring_checker.py index 24d13c3a964..ad172b4a445 100644 --- a/pylint/checkers/refactoring/refactoring_checker.py +++ b/pylint/checkers/refactoring/refactoring_checker.py @@ -550,6 +550,9 @@ def open(self) -> None: self._suggest_join_with_non_empty_separator = ( self.linter.config.suggest_join_with_non_empty_separator ) + self.trailing_comma_tuple_enabled = self.linter.is_message_enabled( + "trailing-comma-tuple" + ) @cached_property def _dummy_rgx(self) -> Pattern[str]: @@ -659,9 +662,9 @@ def process_tokens(self, tokens: list[tokenize.TokenInfo]) -> None: # token[2] is the actual position and also is # reported by IronPython. self._elifs.extend([token[2], tokens[index + 1][2]]) - elif self.linter.is_message_enabled( - "trailing-comma-tuple" - ) and _is_trailing_comma(tokens, index): + elif self.trailing_comma_tuple_enabled and _is_trailing_comma( + tokens, index + ): self.add_message("trailing-comma-tuple", line=token.start[0]) @utils.only_required_for_messages("consider-using-with")