| Viewing file:  message.py (2.69 KB)      -rw-r--r-- Select action/file-type:
 
  (+) |  (+) |  (+) | Code (+) | Session (+) |  (+) | SDB (+) |  (+) |  (+) |  (+) |  (+) |  (+) | 
 
# Licensed under the GPL: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html# For details: https://github.com/PyCQA/pylint/blob/main/LICENSE
 # Copyright (c) https://github.com/PyCQA/pylint/blob/main/CONTRIBUTORS.txt
 
 from __future__ import annotations
 
 from dataclasses import asdict, dataclass
 from warnings import warn
 
 from pylint.constants import MSG_TYPES
 from pylint.interfaces import UNDEFINED, Confidence
 from pylint.typing import MessageLocationTuple
 
 
 @dataclass(unsafe_hash=True)
 class Message:  # pylint: disable=too-many-instance-attributes
 """This class represent a message to be issued by the reporters."""
 
 msg_id: str
 symbol: str
 msg: str
 C: str
 category: str
 confidence: Confidence
 abspath: str
 path: str
 module: str
 obj: str
 line: int
 column: int
 end_line: int | None
 end_column: int | None
 
 def __init__(
 self,
 msg_id: str,
 symbol: str,
 location: tuple[str, str, str, str, int, int] | MessageLocationTuple,
 msg: str,
 confidence: Confidence | None,
 ) -> None:
 if not isinstance(location, MessageLocationTuple):
 warn(
 "In pylint 3.0, Messages will only accept a MessageLocationTuple as location parameter",
 DeprecationWarning,
 stacklevel=2,
 )
 location = MessageLocationTuple(
 location[0],
 location[1],
 location[2],
 location[3],
 location[4],
 location[5],
 None,
 None,
 )
 
 self.msg_id = msg_id
 self.symbol = symbol
 self.msg = msg
 self.C = msg_id[0]
 self.category = MSG_TYPES[msg_id[0]]
 self.confidence = confidence or UNDEFINED
 self.abspath = location.abspath
 self.path = location.path
 self.module = location.module
 self.obj = location.obj
 self.line = location.line
 self.column = location.column
 self.end_line = location.end_line
 self.end_column = location.end_column
 
 def format(self, template: str) -> str:
 """Format the message according to the given template.
 
 The template format is the one of the format method :
 cf. https://docs.python.org/2/library/string.html#formatstrings
 """
 return template.format(**asdict(self))
 
 @property
 def location(self) -> MessageLocationTuple:
 return MessageLocationTuple(
 self.abspath,
 self.path,
 self.module,
 self.obj,
 self.line,
 self.column,
 self.end_line,
 self.end_column,
 )
 
 |