42 lines
1015 B
Python
42 lines
1015 B
Python
|
""" List all available codec modules.
|
||
|
|
||
|
(c) Copyright 2005, Marc-Andre Lemburg (mal@lemburg.com).
|
||
|
|
||
|
Licensed to PSF under a Contributor Agreement.
|
||
|
|
||
|
"""
|
||
|
|
||
|
import os, codecs, encodings
|
||
|
|
||
|
_debug = 0
|
||
|
|
||
|
def listcodecs(dir):
|
||
|
names = []
|
||
|
for filename in os.listdir(dir):
|
||
|
if filename[-3:] != '.py':
|
||
|
continue
|
||
|
name = filename[:-3]
|
||
|
# Check whether we've found a true codec
|
||
|
try:
|
||
|
codecs.lookup(name)
|
||
|
except LookupError:
|
||
|
# Codec not found
|
||
|
continue
|
||
|
except Exception, reason:
|
||
|
# Probably an error from importing the codec; still it's
|
||
|
# a valid code name
|
||
|
if _debug:
|
||
|
print '* problem importing codec %r: %s' % \
|
||
|
(name, reason)
|
||
|
names.append(name)
|
||
|
return names
|
||
|
|
||
|
|
||
|
if __name__ == '__main__':
|
||
|
names = listcodecs(encodings.__path__[0])
|
||
|
names.sort()
|
||
|
print 'all_codecs = ['
|
||
|
for name in names:
|
||
|
print ' %r,' % name
|
||
|
print ']'
|