code: def report_error(self, line_number, offset, text, check):
          
          if options.quiet == 1 and not self.file_errors:
              message(self.filename)
          self.file_errors += 1
          code = text[:4]
          options.counters[code] = options.counters.get(code, 0) + 1
          options.messages[code] = text[5:]
          if options.quiet:
              return
          if options.testsuite:
              base = os.path.basename(self.filename)[:4]
              if base == code:
                  return
              if base[0] == 'E' and code[0] == 'W':
                  return
          if ignore_code(code):
              return
          if options.counters[code] == 1 or options.repeat:
              message("%s:%s:%d: %s" %
                      (self.filename, line_number, offset + 1, text))
              if options.show_source:
                  line = self.lines[line_number - 1]
                  message(line.rstrip())
                  message(' ' * offset + '^')
              if options.show_pep8:
                  message(check.__doc__.lstrip('\n').rstrip())
docs: Report an error, according to options.