1 """ List all available codec modules. 2 3 (c) Copyright 2005, Marc-Andre Lemburg (mal (at] 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(']') 42