def add_one_message( self, message_definition, line, node, args, confidence, col_offset ): # backward compatibility, message may not have a symbol symbol = message_definition.symbol or message_definition.msgid self.check_message_definition(message_definition, line, node) if line is None and node is not None: line = node.fromlineno if col_offset is None and hasattr(node, "col_offset"): col_offset = node.col_offset # should this message be displayed if not self.is_message_enabled(message_definition.msgid, line, confidence): self.file_state.handle_ignored_message( self.get_message_state_scope( message_definition.msgid, line, confidence ), message_definition.msgid, line, node, args, confidence, ) return # update stats msg_cat = MSG_TYPES[message_definition.msgid[0]] self.msg_status |= MSG_TYPES_STATUS[message_definition.msgid[0]] self.stats[msg_cat] += 1 self.stats["by_module"][self.current_name][msg_cat] += 1 try: self.stats["by_msg"][symbol] += 1 except KeyError: self.stats["by_msg"][symbol] = 1 # expand message ? msg = message_definition.msg if args: msg %= args # get module and object if node is None: module, obj = self.current_name, "" abspath = self.current_file else: module, obj = get_module_and_frameid(node) abspath = node.root().file path = abspath.replace(self.reporter.path_strip_prefix, "", 1) # add the message self.reporter.handle_message( Message( message_definition.msgid, symbol, (abspath, path, module, obj, line or 1, col_offset or 0), msg, confidence, ) )
def add_one_message( self, message_definition, line, node, args, confidence, col_offset ): self.check_message_definition(message_definition, line, node) if line is None and node is not None: line = node.fromlineno if col_offset is None and hasattr(node, "col_offset"): col_offset = node.col_offset # should this message be displayed if not self.is_message_enabled(message_definition.msgid, line, confidence): self.file_state.handle_ignored_message( self.get_message_state_scope( message_definition.msgid, line, confidence ), message_definition.msgid, line, node, args, confidence, ) return # update stats msg_cat = MSG_TYPES[message_definition.msgid[0]] self.msg_status |= MSG_TYPES_STATUS[message_definition.msgid[0]] if self.stats is None: # pylint: disable=fixme # TODO self.stats should make sense, # class should make sense as soon as instantiated # This is not true for Linter and Reporter at least # pylint: enable=fixme self.stats = { msg_cat: 0, "by_module": {self.current_name: {msg_cat: 0}}, "by_msg": {}, } self.stats[msg_cat] += 1 self.stats["by_module"][self.current_name][msg_cat] += 1 try: self.stats["by_msg"][message_definition.symbol] += 1 except KeyError: self.stats["by_msg"][message_definition.symbol] = 1 # expand message ? msg = message_definition.msg if args: msg %= args # get module and object if node is None: module, obj = self.current_name, "" abspath = self.current_file else: module, obj = get_module_and_frameid(node) abspath = node.root().file if abspath is not None: path = abspath.replace(self.reporter.path_strip_prefix, "", 1) else: path = "configuration" # add the message self.reporter.handle_message( Message( message_definition.msgid, message_definition.symbol, (abspath, path, module, obj, line or 1, col_offset or 0), msg, confidence, ) )
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_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_definition.scope == WarningScope.LINE: if line is None: raise InvalidMessageError( "Message %s must provide line, got None" % msgid) if node is not None: raise InvalidMessageError( "Message %s must only provide line, " "got line=%s, node=%s" % (msgid, line, node)) elif message_definition.scope == WarningScope.NODE: # Node-based warnings may provide an override line. if node is None: raise InvalidMessageError( "Message %s must provide Node, got None" % msgid) if line is None and node is not None: line = node.fromlineno if col_offset is None and hasattr(node, "col_offset"): col_offset = node.col_offset # should this message be displayed if not self.is_message_enabled(msgid, line, confidence): self.file_state.handle_ignored_message( self.get_message_state_scope(msgid, line, confidence), msgid, line, node, args, confidence, ) return # update stats msg_cat = MSG_TYPES[msgid[0]] self.msg_status |= MSG_TYPES_STATUS[msgid[0]] self.stats[msg_cat] += 1 self.stats["by_module"][self.current_name][msg_cat] += 1 try: self.stats["by_msg"][symbol] += 1 except KeyError: self.stats["by_msg"][symbol] = 1 # expand message ? msg = message_definition.msg if args: msg %= args # get module and object if node is None: module, obj = self.current_name, "" abspath = self.current_file else: module, obj = get_module_and_frameid(node) abspath = node.root().file path = abspath.replace(self.reporter.path_strip_prefix, "", 1) # add the message self.reporter.handle_message( Message( msgid, symbol, (abspath, path, module, obj, line or 1, col_offset or 0), msg, confidence, ))