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 9import os, codecs, encodings 10 11_debug = 0 12 13def 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 35if __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(']') 42