code: def check_message(message, **kwargs):
      if kwargs.pop("allow_empty", False):
          if not message or message.isspace():
              return []
      lines = re.split(r"\r\n|\r|\n", message)
      errors = _check_1st_line(lines[0], **kwargs)
      err, signature_lines = _check_bullets(lines, **kwargs)
      errors += err
      errors += _check_signatures(signature_lines, **kwargs)
      def _format(code, lineno, args):
          return "{0}: {1} {2}".format(lineno,
                                       code,
                                       _messages_codes[code].format(*args))
      return list(map(lambda x: _format(x[0], x[1], x[2:]),
                      sorted(errors, key=lambda x: x[0])))