17db96d56Sopenharmony_ci""" List all available codec modules. 27db96d56Sopenharmony_ci 37db96d56Sopenharmony_ci(c) Copyright 2005, Marc-Andre Lemburg (mal@lemburg.com). 47db96d56Sopenharmony_ci 57db96d56Sopenharmony_ci Licensed to PSF under a Contributor Agreement. 67db96d56Sopenharmony_ci 77db96d56Sopenharmony_ci""" 87db96d56Sopenharmony_ci 97db96d56Sopenharmony_ciimport os, codecs, encodings 107db96d56Sopenharmony_ci 117db96d56Sopenharmony_ci_debug = 0 127db96d56Sopenharmony_ci 137db96d56Sopenharmony_cidef listcodecs(dir): 147db96d56Sopenharmony_ci names = [] 157db96d56Sopenharmony_ci for filename in os.listdir(dir): 167db96d56Sopenharmony_ci if filename[-3:] != '.py': 177db96d56Sopenharmony_ci continue 187db96d56Sopenharmony_ci name = filename[:-3] 197db96d56Sopenharmony_ci # Check whether we've found a true codec 207db96d56Sopenharmony_ci try: 217db96d56Sopenharmony_ci codecs.lookup(name) 227db96d56Sopenharmony_ci except LookupError: 237db96d56Sopenharmony_ci # Codec not found 247db96d56Sopenharmony_ci continue 257db96d56Sopenharmony_ci except Exception as reason: 267db96d56Sopenharmony_ci # Probably an error from importing the codec; still it's 277db96d56Sopenharmony_ci # a valid code name 287db96d56Sopenharmony_ci if _debug: 297db96d56Sopenharmony_ci print('* problem importing codec %r: %s' % \ 307db96d56Sopenharmony_ci (name, reason)) 317db96d56Sopenharmony_ci names.append(name) 327db96d56Sopenharmony_ci return names 337db96d56Sopenharmony_ci 347db96d56Sopenharmony_ci 357db96d56Sopenharmony_ciif __name__ == '__main__': 367db96d56Sopenharmony_ci names = listcodecs(encodings.__path__[0]) 377db96d56Sopenharmony_ci names.sort() 387db96d56Sopenharmony_ci print('all_codecs = [') 397db96d56Sopenharmony_ci for name in names: 407db96d56Sopenharmony_ci print(' %r,' % name) 417db96d56Sopenharmony_ci print(']') 42