mirror of
https://fuchsia.googlesource.com/third_party/github.com/pylint-dev/pylint
synced 2024-09-20 15:41:05 +00:00
Refactor - Move build_message_definition to the BaseChecker class
This commit is contained in:
parent
66fcf4511f
commit
e96be13c47
|
@ -14,9 +14,10 @@
|
|||
from typing import Any
|
||||
|
||||
from pylint.config import OptionsProviderMixIn
|
||||
from pylint.constants import WarningScope
|
||||
from pylint.exceptions import InvalidMessageError
|
||||
from pylint.interfaces import UNDEFINED
|
||||
from pylint.message import build_message_definition
|
||||
from pylint.interfaces import UNDEFINED, IRawChecker, ITokenChecker, implements
|
||||
from pylint.message.message_definition import MessageDefinition
|
||||
|
||||
|
||||
class BaseChecker(OptionsProviderMixIn):
|
||||
|
@ -55,14 +56,10 @@ class BaseChecker(OptionsProviderMixIn):
|
|||
return "{} '{}' responsible for {}".format(status, self.name, ", ".join(msgids))
|
||||
|
||||
def add_message(
|
||||
self,
|
||||
msgid,
|
||||
line=None,
|
||||
node=None,
|
||||
args=None,
|
||||
confidence=UNDEFINED,
|
||||
col_offset=None,
|
||||
self, msgid, line=None, node=None, args=None, confidence=None, col_offset=None
|
||||
):
|
||||
if not confidence:
|
||||
confidence = UNDEFINED
|
||||
self.linter.add_message(msgid, line, node, args, confidence, col_offset)
|
||||
|
||||
def check_consistency(self) -> None:
|
||||
|
@ -89,10 +86,34 @@ class BaseChecker(OptionsProviderMixIn):
|
|||
checker_id = message.msgid[1:3]
|
||||
existing_ids.append(message.msgid)
|
||||
|
||||
def create_message_definition_from_tuple(self, msgid, msg_tuple):
|
||||
if implements(self, (IRawChecker, ITokenChecker)):
|
||||
default_scope = WarningScope.LINE
|
||||
else:
|
||||
default_scope = WarningScope.NODE
|
||||
options = {}
|
||||
if len(msg_tuple) > 3:
|
||||
(msg, symbol, descr, options) = msg_tuple
|
||||
elif len(msg_tuple) > 2:
|
||||
(msg, symbol, descr) = msg_tuple
|
||||
else:
|
||||
error_msg = """Messages should have a msgid and a symbol. Something like this :
|
||||
|
||||
"W1234": (
|
||||
"message",
|
||||
"message-symbol",
|
||||
"Message description with detail.",
|
||||
...
|
||||
),
|
||||
"""
|
||||
raise InvalidMessageError(error_msg)
|
||||
options.setdefault("scope", default_scope)
|
||||
return MessageDefinition(self, msgid, msg, descr, symbol, **options)
|
||||
|
||||
@property
|
||||
def messages(self) -> list:
|
||||
return [
|
||||
build_message_definition(self, msgid, msg_tuple)
|
||||
self.create_message_definition_from_tuple(msgid, msg_tuple)
|
||||
for msgid, msg_tuple in sorted(self.msgs.items())
|
||||
]
|
||||
|
||||
|
|
|
@ -39,7 +39,6 @@
|
|||
|
||||
"""All the classes related to Message handling."""
|
||||
|
||||
from pylint.message.build_message_definition import build_message_definition
|
||||
from pylint.message.message import Message
|
||||
from pylint.message.message_definition import MessageDefinition
|
||||
from pylint.message.message_handler_mix_in import MessagesHandlerMixIn
|
||||
|
|
|
@ -1,34 +0,0 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
|
||||
# Licensed under the GPL: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
|
||||
# For details: https://github.com/PyCQA/pylint/blob/master/COPYING
|
||||
|
||||
import warnings
|
||||
|
||||
from pylint.constants import WarningScope
|
||||
from pylint.interfaces import IRawChecker, ITokenChecker, implements
|
||||
from pylint.message.message_definition import MessageDefinition
|
||||
|
||||
|
||||
def build_message_definition(checker, msgid, msg_tuple):
|
||||
if implements(checker, (IRawChecker, ITokenChecker)):
|
||||
default_scope = WarningScope.LINE
|
||||
else:
|
||||
default_scope = WarningScope.NODE
|
||||
options = {}
|
||||
if len(msg_tuple) > 3:
|
||||
(msg, symbol, descr, options) = msg_tuple
|
||||
elif len(msg_tuple) > 2:
|
||||
(msg, symbol, descr) = msg_tuple
|
||||
else:
|
||||
# messages should have a symbol, but for backward compatibility
|
||||
# they may not.
|
||||
(msg, descr) = msg_tuple
|
||||
warnings.warn(
|
||||
"[pylint 0.26] description of message %s doesn't include "
|
||||
"a symbolic name" % msgid,
|
||||
DeprecationWarning,
|
||||
)
|
||||
symbol = None
|
||||
options.setdefault("scope", default_scope)
|
||||
return MessageDefinition(checker, msgid, msg, descr, symbol, **options)
|
|
@ -20,7 +20,6 @@ from pylint.constants import (
|
|||
)
|
||||
from pylint.exceptions import InvalidMessageError, UnknownMessageError
|
||||
from pylint.interfaces import UNDEFINED
|
||||
from pylint.message.build_message_definition import build_message_definition
|
||||
from pylint.message.message import Message
|
||||
from pylint.utils.utils import (
|
||||
_format_option_value,
|
||||
|
@ -442,7 +441,7 @@ Below is a list of all checkers and their features.
|
|||
for msgid, msg in sorted(
|
||||
msgs.items(), key=lambda kv: (_MSG_ORDER.index(kv[0][0]), kv[1])
|
||||
):
|
||||
msg = build_message_definition(checker.name, msgid, msg)
|
||||
msg = checker.create_message_definition_from_tuple(msgid, msg)
|
||||
result += "%s\n" % msg.format_help(checkerref=False)
|
||||
result += "\n"
|
||||
if reports:
|
||||
|
|
Loading…
Reference in New Issue
Block a user