(root)/
Python-3.12.0/
Tools/
unicode/
listcodecs.py
       1  """ List all available codec modules.
       2  
       3  (c) Copyright 2005, Marc-Andre Lemburg (mal@lemburg.com).
       4  
       5      Licensed to PSF under a Contributor Agreement.
       6  
       7  """
       8  
       9  import os, codecs, encodings
      10  
      11  _debug = 0
      12  
      13  def listcodecs(dir):
      14      names = []
      15      for filename in os.listdir(dir):
      16          if filename[-3:] != '.py':
      17              continue
      18          name = filename[:-3]
      19          # Check whether we've found a true codec
      20          try:
      21              codecs.lookup(name)
      22          except LookupError:
      23              # Codec not found
      24              continue
      25          except Exception as reason:
      26              # Probably an error from importing the codec; still it's
      27              # a valid code name
      28              if _debug:
      29                  print('* problem importing codec %r: %s' % \
      30                        (name, reason))
      31          names.append(name)
      32      return names
      33  
      34  
      35  if __name__ == '__main__':
      36      names = listcodecs(encodings.__path__[0])
      37      names.sort()
      38      print('all_codecs = [')
      39      for name in names:
      40          print('    %r,' % name)
      41      print(']')