diff options
author | Daniƫl van Noord <13665637+DanielNoord@users.noreply.github.com> | 2021-08-03 22:05:11 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-08-03 22:05:11 +0200 |
commit | a71cfe1c4c700b9cf5ca4361f991f01b5a270f42 (patch) | |
tree | b93f61c09d6a394b0e3e3421c1a095b2902aec07 /pylint/message/message_definition_store.py | |
parent | 741276e90a3698c8bf5ac621669453b67b7c2c7c (diff) | |
download | pylint-git-a71cfe1c4c700b9cf5ca4361f991f01b5a270f42.tar.gz |
Refactor ``--list-msgs`` & ``--list-msgs-enabled`` (#4793)
* Refactor ``--list-msgs`` & ``--list-msgs-enabled``
Both options now show which messages can't be emitted with the
current interpreter. This makes function more like their name implies.
This closes #4778
Co-authored-by: Pierre Sassoulas <pierre.sassoulas@gmail.com>
Diffstat (limited to 'pylint/message/message_definition_store.py')
-rw-r--r-- | pylint/message/message_definition_store.py | 26 |
1 files changed, 21 insertions, 5 deletions
diff --git a/pylint/message/message_definition_store.py b/pylint/message/message_definition_store.py index 80ee5b81d..c715d8561 100644 --- a/pylint/message/message_definition_store.py +++ b/pylint/message/message_definition_store.py @@ -2,7 +2,7 @@ # For details: https://github.com/PyCQA/pylint/blob/main/LICENSE import collections -from typing import Dict, List, ValuesView +from typing import Dict, List, Tuple, ValuesView from pylint.exceptions import UnknownMessageError from pylint.message.message_definition import MessageDefinition @@ -73,9 +73,25 @@ class MessageDefinitionStore: def list_messages(self) -> None: """Output full messages list documentation in ReST format.""" + emittable, non_emittable = self.find_emittable_messages() + print("Emittable messages with current interpreter:") + for msg in emittable: + print(msg.format_help(checkerref=False)) + print("\nNon-emittable messages with current interpreter:") + for msg in non_emittable: + print(msg.format_help(checkerref=False)) + print("") + + def find_emittable_messages( + self, + ) -> Tuple[List[MessageDefinition], List[MessageDefinition]]: + """Finds all emittable and non-emittable messages""" messages = sorted(self._messages_definitions.values(), key=lambda m: m.msgid) + emittable = [] + non_emittable = [] for message in messages: - if not message.may_be_emitted(): - continue - print(message.format_help(checkerref=False)) - print("") + if message.may_be_emitted(): + emittable.append(message) + else: + non_emittable.append(message) + return emittable, non_emittable |