code: def auto_decode(data):
      # type: (bytes) -> Text
      
      for bom, encoding in BOMS:
          if data.startswith(bom):
              return data[len(bom):].decode(encoding)
      # Lets check the first two lines as in PEP263
      for line in data.split(b'\n')[:2]:
          if line[0:1] == b'#' and ENCODING_RE.search(line):
              encoding = ENCODING_RE.search(line).groups()[0].decode('ascii')
              return data.decode(encoding)
      return data.decode(
          locale.getpreferredencoding(False) or sys.getdefaultencoding(),
      )
docs: Check a bytes string for a BOM to correctly detect the encoding
  
      Fallback to locale.getpreferredencoding(False) like open() on Python3