mirror of
https://github.com/PiBrewing/craftbeerpi4.git
synced 2024-11-26 17:05:31 +01:00
51 lines
1.3 KiB
Python
51 lines
1.3 KiB
Python
# 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 collections
|
|
|
|
from pylint.constants import MSG_TYPES
|
|
|
|
_MsgBase = collections.namedtuple(
|
|
"_MsgBase",
|
|
[
|
|
"msg_id",
|
|
"symbol",
|
|
"msg",
|
|
"C",
|
|
"category",
|
|
"confidence",
|
|
"abspath",
|
|
"path",
|
|
"module",
|
|
"obj",
|
|
"line",
|
|
"column",
|
|
],
|
|
)
|
|
|
|
|
|
class Message(_MsgBase):
|
|
"""This class represent a message to be issued by the reporters"""
|
|
|
|
def __new__(cls, msg_id, symbol, location, msg, confidence):
|
|
return _MsgBase.__new__(
|
|
cls,
|
|
msg_id,
|
|
symbol,
|
|
msg,
|
|
msg_id[0],
|
|
MSG_TYPES[msg_id[0]],
|
|
confidence,
|
|
*location
|
|
)
|
|
|
|
def format(self, template):
|
|
"""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
|
|
"""
|
|
# For some reason, _asdict on derived namedtuples does not work with
|
|
# Python 3.4. Needs some investigation.
|
|
return template.format(**dict(zip(self._fields, self)))
|