Skip to content

Commit

Permalink
Refactor - Consistent function and variable name
Browse files Browse the repository at this point in the history
We return a list of message definitions so we must rename
get_message_definition to get_message_definitions. Resulting variables
are now named message_definitions most of the time in order to improve
readability. (It was often named "msgs" or worst "symbol")
  • Loading branch information
Pierre-Sassoulas authored and PCManticore committed Dec 18, 2018
1 parent fd73f7a commit da67a9d
Show file tree
Hide file tree
Showing 3 changed files with 53 additions and 47 deletions.
6 changes: 4 additions & 2 deletions pylint/checkers/format.py
Original file line number Diff line number Diff line change
Expand Up @@ -1057,8 +1057,10 @@ def process_tokens(self, tokens):
if line_num > self.config.max_module_lines:
# Get the line where the too-many-lines (or its message id)
# was disabled or default to 1.
symbol = self.linter.msgs_store.get_message_definition("too-many-lines")[0]
names = (symbol.msgid, "too-many-lines")
message_definition = self.linter.msgs_store.get_message_definitions(
"too-many-lines"
)[0]
names = (message_definition.msgid, "too-many-lines")
line = next(filter(None, map(self.linter._pragma_lineno.get, names)), 1)
self.add_message(
"too-many-lines",
Expand Down
24 changes: 12 additions & 12 deletions pylint/test/unittest_lint.py
Original file line number Diff line number Diff line change
Expand Up @@ -706,41 +706,41 @@ def _compare_messages(self, desc, msg, checkerref=False):
assert desc == msg.format_help(checkerref=checkerref)

def test_check_message_id(self, store):
assert isinstance(store.get_message_definition("W1234")[0], MessageDefinition)
assert isinstance(store.get_message_definitions("W1234")[0], MessageDefinition)
with pytest.raises(UnknownMessageError):
store.get_message_definition("YB12")
store.get_message_definitions("YB12")

def test_message_help(self, store):
msg = store.get_message_definition("W1234")[0]
message_definition = store.get_message_definitions("W1234")[0]
self._compare_messages(
""":msg-symbol (W1234): *message*
msg description. This message belongs to the achecker checker.""",
msg,
message_definition,
checkerref=True,
)
self._compare_messages(
""":msg-symbol (W1234): *message*
msg description.""",
msg,
message_definition,
checkerref=False,
)

def test_message_help_minmax(self, store):
# build the message manually to be python version independent
msg = store.get_message_definition("E1234")[0]
message_definition = store.get_message_definitions("E1234")[0]
self._compare_messages(
""":duplicate-keyword-arg (E1234): *Duplicate keyword argument %r in %s call*
Used when a function call passes the same keyword argument multiple times.
This message belongs to the achecker checker. It can't be emitted when using
Python >= 2.6.""",
msg,
message_definition,
checkerref=True,
)
self._compare_messages(
""":duplicate-keyword-arg (E1234): *Duplicate keyword argument %r in %s call*
Used when a function call passes the same keyword argument multiple times.
This message can't be emitted when using Python >= 2.6.""",
msg,
message_definition,
checkerref=False,
)

Expand All @@ -753,8 +753,8 @@ def test_list_messages(self, store):

def test_add_renamed_message(self, store):
store.add_renamed_message("W1234", "old-bad-name", "msg-symbol")
assert "msg-symbol" == store.get_message_definition("W1234")[0].symbol
assert "msg-symbol" == store.get_message_definition("old-bad-name")[0].symbol
assert "msg-symbol" == store.get_message_definitions("W1234")[0].symbol
assert "msg-symbol" == store.get_message_definitions("old-bad-name")[0].symbol

def test_add_renamed_message_invalid(self, store):
# conflicting message ID
Expand All @@ -769,8 +769,8 @@ def test_add_renamed_message_invalid(self, store):
assert str(cm.value) == expected

def test_renamed_message_register(self, store):
assert "msg-symbol" == store.get_message_definition("W0001")[0].symbol
assert "msg-symbol" == store.get_message_definition("old-symbol")[0].symbol
assert "msg-symbol" == store.get_message_definitions("W0001")[0].symbol
assert "msg-symbol" == store.get_message_definitions("old-symbol")[0].symbol


def test_custom_should_analyze_file():
Expand Down
70 changes: 37 additions & 33 deletions pylint/utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -302,14 +302,14 @@ def _register_by_id_managed_msg(self, msgid, line, is_disabled=True):
"""If the msgid is a numeric one, then register it to inform the user
it could furnish instead a symbolic msgid."""
try:
messages = self.msgs_store.get_message_definition(msgid)
for message in messages:
if msgid == message.msgid:
message_definitions = self.msgs_store.get_message_definitions(msgid)
for message_definition in message_definitions:
if msgid == message_definition.msgid:
MessagesHandlerMixIn.__by_id_managed_msgs.append(
(
self.current_name,
message.msgid,
message.symbol,
message_definition.msgid,
message_definition.symbol,
line,
is_disabled,
)
Expand Down Expand Up @@ -370,13 +370,13 @@ def _set_msg_status(

try:
# msgid is a symbolic or numeric msgid.
messages = self.msgs_store.get_message_definition(msgid)
message_definitions = self.msgs_store.get_message_definitions(msgid)
except UnknownMessageError:
if ignore_unknown:
return
raise
for message in messages:
self._set_one_msg_status(scope, message, line, enable)
for message_definition in message_definitions:
self._set_one_msg_status(scope, message_definition, line, enable)

def _set_one_msg_status(self, scope, msg, line, enable):
if scope == "module":
Expand Down Expand Up @@ -405,7 +405,7 @@ def _message_symbol(self, msgid):
exist.
"""
try:
return [s.symbol for s in self.msgs_store.get_message_definition(msgid)]
return [md.symbol for md in self.msgs_store.get_message_definitions(msgid)]
except UnknownMessageError:
return msgid

Expand All @@ -430,8 +430,8 @@ def is_message_enabled(self, msg_descr, line=None, confidence=None):
if confidence.name not in self.config.confidence:
return False
try:
msgs = self.msgs_store.get_message_definition(msg_descr)
msgids = [msg.msgid for msg in msgs]
message_definitions = self.msgs_store.get_message_definitions(msg_descr)
msgids = [md.msgid for md in message_definitions]
except UnknownMessageError:
# The linter checks for messages that are not registered
# due to version mismatch, just treat them as message IDs
Expand Down Expand Up @@ -490,18 +490,22 @@ def add_message(
provide line if the line number is different), raw and token checkers
must provide the line argument.
"""
messages = self.msgs_store.get_message_definition(msg_descr)
for message in messages:
self.add_one_message(message, line, node, args, confidence, col_offset)
message_definitions = self.msgs_store.get_message_definitions(msg_descr)
for message_definition in message_definitions:
self.add_one_message(
message_definition, line, node, args, confidence, col_offset
)

def add_one_message(self, message, line, node, args, confidence, col_offset):
msgid = message.msgid
def add_one_message(
self, message_definition, line, node, args, confidence, col_offset
):
msgid = message_definition.msgid
# backward compatibility, message may not have a symbol
symbol = message.symbol or msgid
symbol = message_definition.symbol or msgid
# Fatal messages and reports are special, the node/scope distinction
# does not apply to them.
if msgid[0] not in _SCOPE_EXEMPT:
if message.scope == WarningScope.LINE:
if message_definition.scope == WarningScope.LINE:
if line is None:
raise InvalidMessageError(
"Message %s must provide line, got None" % msgid
Expand All @@ -511,7 +515,7 @@ def add_one_message(self, message, line, node, args, confidence, col_offset):
"Message %s must only provide line, "
"got line=%s, node=%s" % (msgid, line, node)
)
elif message.scope == WarningScope.NODE:
elif message_definition.scope == WarningScope.NODE:
# Node-based warnings may provide an override line.
if node is None:
raise InvalidMessageError(
Expand Down Expand Up @@ -546,7 +550,7 @@ def add_one_message(self, message, line, node, args, confidence, col_offset):
except KeyError:
self.stats["by_msg"][symbol] = 1
# expand message ?
msg = message.msg
msg = message_definition.msg
if args:
msg %= args
# get module and object
Expand Down Expand Up @@ -738,9 +742,9 @@ def _collect_block_lines(self, msgs_store, node, msg_state):
continue
# Set state for all lines for this block, if the
# warning is applied to nodes.
messages = msgs_store.get_message_definition(msgid)
for message in messages:
if message.scope == WarningScope.NODE:
message_definitions = msgs_store.get_message_definitions(msgid)
for message_definition in message_definitions:
if message_definition.scope == WarningScope.NODE:
if lineno > firstchildlineno:
state = True
first_, last_ = node.block_range(lineno)
Expand Down Expand Up @@ -834,9 +838,9 @@ def add_renamed_message(self, old_id, old_symbol, new_symbol):
This allows users to keep using the old ID/symbol in suppressions.
"""
msg = self.get_message_definition(new_symbol)[0]
msg.old_names.append((old_id, old_symbol))
self._register_alternative_name(msg, old_id, old_symbol)
message_definition = self.get_message_definitions(new_symbol)[0]
message_definition.old_names.append((old_id, old_symbol))
self._register_alternative_name(message_definition, old_id, old_symbol)

@staticmethod
def get_checker_message_definitions(checker):
Expand Down Expand Up @@ -992,7 +996,7 @@ def _raise_duplicate_msg_id(symbol, msgid, other_msgid):
)
raise InvalidMessageError(error_message)

def get_message_definition(self, msgid_or_symbol: str) -> list:
def get_message_definitions(self, msgid_or_symbol: str) -> list:
"""Returns the Message object for this message.
:param str msgid_or_symbol: msgid_or_symbol may be either a numeric or symbolic id.
Expand All @@ -1017,17 +1021,17 @@ def get_msg_display_string(self, msgid):
Can be just the message ID or the ID and the symbol.
"""
msgs = self.get_message_definition(msgid)
if len(msgs) == 1:
return repr(msgs[0].symbol)
return repr([msg.symbol for msg in msgs])
message_definitions = self.get_message_definitions(msgid)
if len(message_definitions) == 1:
return repr(message_definitions[0].symbol)
return repr([md.symbol for md in message_definitions])

def help_message(self, msgids):
"""Display help messages for the given message identifiers"""
for msgid in msgids:
try:
for msg in self.get_message_definition(msgid):
print(msg.format_help(checkerref=True))
for message_definition in self.get_message_definitions(msgid):
print(message_definition.format_help(checkerref=True))
print("")
except UnknownMessageError as ex:
print(ex)
Expand Down

0 comments on commit da67a9d

Please sign in to comment.