diff options
author | Marc-André Lemburg <mal@egenix.com> | 2002-02-11 17:43:46 (GMT) |
---|---|---|
committer | Marc-André Lemburg <mal@egenix.com> | 2002-02-11 17:43:46 (GMT) |
commit | a0af63b2421916e748700c746e03f1bd1656b074 (patch) | |
tree | f54da661f32748c2b9502bec620eacb4632f78f2 /Lib/encodings | |
parent | f2f219daa249df3006666c81cb570aeb07724574 (diff) | |
download | cpython-a0af63b2421916e748700c746e03f1bd1656b074.zip cpython-a0af63b2421916e748700c746e03f1bd1656b074.tar.gz cpython-a0af63b2421916e748700c746e03f1bd1656b074.tar.bz2 |
Corrected import behaviour for codecs which live outside the encodings
package.
Diffstat (limited to 'Lib/encodings')
-rw-r--r-- | Lib/encodings/__init__.py | 19 | ||||
-rw-r--r-- | Lib/encodings/aliases.py | 10 |
2 files changed, 12 insertions, 17 deletions
diff --git a/Lib/encodings/__init__.py b/Lib/encodings/__init__.py index 65f5c9c..827db35 100644 --- a/Lib/encodings/__init__.py +++ b/Lib/encodings/__init__.py @@ -4,8 +4,8 @@ directory. Codec modules must have names corresponding to standard lower-case - encoding names with hyphens and periods mapped to underscores, - e.g. 'utf-8' is implemented by the module 'utf_8.py'. + encoding names with hyphens mapped to underscores, e.g. 'utf-8' is + implemented by the module 'utf_8.py'. Each codec module must export the following interface: @@ -52,23 +52,18 @@ def search_function(encoding): # default import module lookup scheme with the alias name. # modname = encoding.replace('-', '_') - modname = modname.replace('.', '_') try: mod = __import__('encodings.' + modname, globals(), locals(), _import_tail) except ImportError,why: import aliases - modname = aliases.aliases.get(modname, _unknown) - if modname is not _unknown: - try: - mod = __import__(modname, - globals(), locals(), _import_tail) - except ImportError,why: - mod = None - else: + modname = aliases.aliases.get(modname, modname) + try: + mod = __import__(modname, globals(), locals(), _import_tail) + except ImportError,why: mod = None if mod is None: - # cache misses + # Cache misses _cache[encoding] = None return None diff --git a/Lib/encodings/aliases.py b/Lib/encodings/aliases.py index b6882ae..2365576 100644 --- a/Lib/encodings/aliases.py +++ b/Lib/encodings/aliases.py @@ -4,8 +4,8 @@ map encodings names to module names. Note that the search function converts the encoding names to lower - case and replaces hyphens and periods with underscores *before* - performing the lookup. + case and replaces hyphens with underscores *before* performing the + lookup. Contents: @@ -25,13 +25,13 @@ aliases = { # ascii codec '646' : 'ascii', - 'ansi_x3_4_1968' : 'ascii', - 'ansi_x3_4_1986' : 'ascii', + 'ansi_x3.4_1968' : 'ascii', + 'ansi_x3.4_1986' : 'ascii', 'cp367' : 'ascii', 'csascii' : 'ascii', 'ibm367' : 'ascii', 'iso646_us' : 'ascii', - 'iso_646_irv:1991' : 'ascii', + 'iso_646.irv:1991' : 'ascii', 'iso_ir_6' : 'ascii', 'us' : 'ascii', 'us_ascii' : 'ascii', |