### SUMMARY

Update validate-modules to report messages using named error codes like `version-added` instead of error numbers like `E305`.

This would match the behavior of other tools we use, such as pylint, which have one named error code per rule. This will also make ignore entries much easier to read.

Doing this before 2.9 is released will avoid potential backwards compatibility issues with ignore entries in collections.

##### ISSUE TYPE

Feature Idea

##### COMPONENT NAME

validate-modules

return self.tuple < other.tuple
    def __le__(self, other):
        return self.tuple <= other.tuple
    def __eq__(self, other):
        return self.tuple == other.tuple
    def __ne__(self, other):
        return self.tuple != other.tuple
    def __gt__(self, other):
        return self.tuple > other.tuple
    def __ge__(self, other):
        return self.tuple >= other.tuple
    def __hash__(self):
        return hash(self.tuple)
    def __str__(self):
        return self.format()
    def format(self, show_confidence=False):
        """
        :type show_confidence: bool
        :rtype: str
        """
        if self.__code:
            msg = '%s %s' % (self.__code, self.__message)
        else:
            msg = self.__message
        if show_confidence and self.confidence is not None:
            msg += ' (%d%%)' % self.confidence
        return '%s:%s:%s: %s' % (self.__path, self.__line, self.__column, msg)