docs: def _normalize_encoding(encoding):
      """returns normalized name for <encoding>
  
      see dist/src/Parser/tokenizer.c 'get_normal_name()'
      for implementation details / reference
  
      NOTE: for now, parser.suite() raises a MemoryError when
            a bad encoding is used. (SF bug #979739)
      """
      if encoding is None:
          return None
      # lower() + '_' / '-' conversion
      encoding = encoding.replace('_', '-').lower()
      if encoding == 'utf-8' or encoding.startswith('utf-8-'):
          return 'utf-8'
      for variant in ['latin-1', 'iso-latin-1', 'iso-8859-1']:
          if (encoding == variant or
              encoding.startswith(variant + '-')):
              return 'iso-8859-1'
      return encoding