Mercurial > cpython-lru_cache-weakref
annotate Tools/unicode/listcodecs.py @ 80661:94de77bd0b4b 2.7
Issue #16194: document imp.load_dynamic problems
when read several extension modules from the same binary object file.
| author | Andrew Svetlov <andrew.svetlov@gmail.com> |
|---|---|
| date | Thu, 29 Nov 2012 19:51:28 +0200 |
| parents | 7a5ac203154a |
| children | 6b18a095c2e7 |
| rev | line source |
|---|---|
|
35761
7a5ac203154a
Add two new tools to compare codecs and show differences and to
Marc-André Lemburg <mal@egenix.com>
parents:
diff
changeset
|
1 """ List all available codec modules. |
|
7a5ac203154a
Add two new tools to compare codecs and show differences and to
Marc-André Lemburg <mal@egenix.com>
parents:
diff
changeset
|
2 |
|
7a5ac203154a
Add two new tools to compare codecs and show differences and to
Marc-André Lemburg <mal@egenix.com>
parents:
diff
changeset
|
3 (c) Copyright 2005, Marc-Andre Lemburg (mal@lemburg.com). |
|
7a5ac203154a
Add two new tools to compare codecs and show differences and to
Marc-André Lemburg <mal@egenix.com>
parents:
diff
changeset
|
4 |
|
7a5ac203154a
Add two new tools to compare codecs and show differences and to
Marc-André Lemburg <mal@egenix.com>
parents:
diff
changeset
|
5 Licensed to PSF under a Contributor Agreement. |
|
7a5ac203154a
Add two new tools to compare codecs and show differences and to
Marc-André Lemburg <mal@egenix.com>
parents:
diff
changeset
|
6 |
|
7a5ac203154a
Add two new tools to compare codecs and show differences and to
Marc-André Lemburg <mal@egenix.com>
parents:
diff
changeset
|
7 """ |
|
7a5ac203154a
Add two new tools to compare codecs and show differences and to
Marc-André Lemburg <mal@egenix.com>
parents:
diff
changeset
|
8 |
|
7a5ac203154a
Add two new tools to compare codecs and show differences and to
Marc-André Lemburg <mal@egenix.com>
parents:
diff
changeset
|
9 import os, codecs, encodings |
|
7a5ac203154a
Add two new tools to compare codecs and show differences and to
Marc-André Lemburg <mal@egenix.com>
parents:
diff
changeset
|
10 |
|
7a5ac203154a
Add two new tools to compare codecs and show differences and to
Marc-André Lemburg <mal@egenix.com>
parents:
diff
changeset
|
11 _debug = 0 |
|
7a5ac203154a
Add two new tools to compare codecs and show differences and to
Marc-André Lemburg <mal@egenix.com>
parents:
diff
changeset
|
12 |
|
7a5ac203154a
Add two new tools to compare codecs and show differences and to
Marc-André Lemburg <mal@egenix.com>
parents:
diff
changeset
|
13 def listcodecs(dir): |
|
7a5ac203154a
Add two new tools to compare codecs and show differences and to
Marc-André Lemburg <mal@egenix.com>
parents:
diff
changeset
|
14 names = [] |
|
7a5ac203154a
Add two new tools to compare codecs and show differences and to
Marc-André Lemburg <mal@egenix.com>
parents:
diff
changeset
|
15 for filename in os.listdir(dir): |
|
7a5ac203154a
Add two new tools to compare codecs and show differences and to
Marc-André Lemburg <mal@egenix.com>
parents:
diff
changeset
|
16 if filename[-3:] != '.py': |
|
7a5ac203154a
Add two new tools to compare codecs and show differences and to
Marc-André Lemburg <mal@egenix.com>
parents:
diff
changeset
|
17 continue |
|
7a5ac203154a
Add two new tools to compare codecs and show differences and to
Marc-André Lemburg <mal@egenix.com>
parents:
diff
changeset
|
18 name = filename[:-3] |
|
7a5ac203154a
Add two new tools to compare codecs and show differences and to
Marc-André Lemburg <mal@egenix.com>
parents:
diff
changeset
|
19 # Check whether we've found a true codec |
|
7a5ac203154a
Add two new tools to compare codecs and show differences and to
Marc-André Lemburg <mal@egenix.com>
parents:
diff
changeset
|
20 try: |
|
7a5ac203154a
Add two new tools to compare codecs and show differences and to
Marc-André Lemburg <mal@egenix.com>
parents:
diff
changeset
|
21 codecs.lookup(name) |
|
7a5ac203154a
Add two new tools to compare codecs and show differences and to
Marc-André Lemburg <mal@egenix.com>
parents:
diff
changeset
|
22 except LookupError: |
|
7a5ac203154a
Add two new tools to compare codecs and show differences and to
Marc-André Lemburg <mal@egenix.com>
parents:
diff
changeset
|
23 # Codec not found |
|
7a5ac203154a
Add two new tools to compare codecs and show differences and to
Marc-André Lemburg <mal@egenix.com>
parents:
diff
changeset
|
24 continue |
|
7a5ac203154a
Add two new tools to compare codecs and show differences and to
Marc-André Lemburg <mal@egenix.com>
parents:
diff
changeset
|
25 except Exception, reason: |
|
7a5ac203154a
Add two new tools to compare codecs and show differences and to
Marc-André Lemburg <mal@egenix.com>
parents:
diff
changeset
|
26 # Probably an error from importing the codec; still it's |
|
7a5ac203154a
Add two new tools to compare codecs and show differences and to
Marc-André Lemburg <mal@egenix.com>
parents:
diff
changeset
|
27 # a valid code name |
|
7a5ac203154a
Add two new tools to compare codecs and show differences and to
Marc-André Lemburg <mal@egenix.com>
parents:
diff
changeset
|
28 if _debug: |
|
7a5ac203154a
Add two new tools to compare codecs and show differences and to
Marc-André Lemburg <mal@egenix.com>
parents:
diff
changeset
|
29 print '* problem importing codec %r: %s' % \ |
|
7a5ac203154a
Add two new tools to compare codecs and show differences and to
Marc-André Lemburg <mal@egenix.com>
parents:
diff
changeset
|
30 (name, reason) |
|
7a5ac203154a
Add two new tools to compare codecs and show differences and to
Marc-André Lemburg <mal@egenix.com>
parents:
diff
changeset
|
31 names.append(name) |
|
7a5ac203154a
Add two new tools to compare codecs and show differences and to
Marc-André Lemburg <mal@egenix.com>
parents:
diff
changeset
|
32 return names |
|
7a5ac203154a
Add two new tools to compare codecs and show differences and to
Marc-André Lemburg <mal@egenix.com>
parents:
diff
changeset
|
33 |
|
7a5ac203154a
Add two new tools to compare codecs and show differences and to
Marc-André Lemburg <mal@egenix.com>
parents:
diff
changeset
|
34 |
|
7a5ac203154a
Add two new tools to compare codecs and show differences and to
Marc-André Lemburg <mal@egenix.com>
parents:
diff
changeset
|
35 if __name__ == '__main__': |
|
7a5ac203154a
Add two new tools to compare codecs and show differences and to
Marc-André Lemburg <mal@egenix.com>
parents:
diff
changeset
|
36 names = listcodecs(encodings.__path__[0]) |
|
7a5ac203154a
Add two new tools to compare codecs and show differences and to
Marc-André Lemburg <mal@egenix.com>
parents:
diff
changeset
|
37 names.sort() |
|
7a5ac203154a
Add two new tools to compare codecs and show differences and to
Marc-André Lemburg <mal@egenix.com>
parents:
diff
changeset
|
38 print 'all_codecs = [' |
|
7a5ac203154a
Add two new tools to compare codecs and show differences and to
Marc-André Lemburg <mal@egenix.com>
parents:
diff
changeset
|
39 for name in names: |
|
7a5ac203154a
Add two new tools to compare codecs and show differences and to
Marc-André Lemburg <mal@egenix.com>
parents:
diff
changeset
|
40 print ' %r,' % name |
|
7a5ac203154a
Add two new tools to compare codecs and show differences and to
Marc-André Lemburg <mal@egenix.com>
parents:
diff
changeset
|
41 print ']' |
