def _set_msg_status(self, msgid, enable, scope="package", line=None, ignore_unknown=False): assert scope in ("package", "module") if msgid == "all": for _msgid in MSG_TYPES: self._set_msg_status(_msgid, enable, scope, line, ignore_unknown) if enable and not self._python3_porting_mode: # Don't activate the python 3 porting checker if it wasn't activated explicitly. self.disable("python3") return # msgid is a category? category_id = msgid.upper() if category_id not in MSG_TYPES: category_id = MSG_TYPES_LONG.get(category_id) if category_id is not None: for _msgid in self.msgs_store._msgs_by_category.get(category_id): self._set_msg_status(_msgid, enable, scope, line) return # msgid is a checker name? if msgid.lower() in self._checkers: for checker in self._checkers[msgid.lower()]: for _msgid in checker.msgs: if _msgid in self.msgs_store._old_message_definitions: self._set_msg_status(_msgid, enable, scope, line) return # msgid is report id? if msgid.lower().startswith("rp"): if enable: self.enable_report(msgid) else: self.disable_report(msgid) return try: # msgid is a symbolic or numeric msgid. message_definitions = self.msgs_store.get_message_definitions( msgid) except UnknownMessageError: if ignore_unknown: return raise for message_definition in message_definitions: self._set_one_msg_status(scope, message_definition, line, enable)
def _get_messages_to_set( self, msgid: str, enable: bool, ignore_unknown: bool = False) -> list[MessageDefinition]: """Do some tests and find the actual messages of which the status should be set.""" message_definitions: list[MessageDefinition] = [] if msgid == "all": for _msgid in MSG_TYPES: message_definitions.extend( self._get_messages_to_set(_msgid, enable, ignore_unknown)) return message_definitions # msgid is a category? category_id = msgid.upper() if category_id not in MSG_TYPES: category_id_formatted = MSG_TYPES_LONG.get(category_id) else: category_id_formatted = category_id if category_id_formatted is not None: for _msgid in self.linter.msgs_store._msgs_by_category[ category_id_formatted]: message_definitions.extend( self._get_messages_to_set(_msgid, enable, ignore_unknown)) return message_definitions # msgid is a checker name? if msgid.lower() in self.linter._checkers: for checker in self.linter._checkers[msgid.lower()]: for _msgid in checker.msgs: message_definitions.extend( self._get_messages_to_set(_msgid, enable, ignore_unknown)) return message_definitions # msgid is report id? if msgid.lower().startswith("rp"): if enable: self.linter.enable_report(msgid) else: self.linter.disable_report(msgid) return message_definitions try: # msgid is a symbolic or numeric msgid. message_definitions = self.linter.msgs_store.get_message_definitions( msgid) except exceptions.UnknownMessageError: if not ignore_unknown: raise return message_definitions
def category_id(cid): cid = cid.upper() if cid in MSG_TYPES: return cid return MSG_TYPES_LONG.get(cid)