equal
deleted
inserted
replaced
|
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 |
|
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, 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 ']' |