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, 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