mirror of https://github.com/python/cpython
42 lines
1021 B
Python
42 lines
1021 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 as 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(']')
|