summaryrefslogtreecommitdiffstats
path: root/Lib
diff options
context:
space:
mode:
authorMarc-André Lemburg <mal@egenix.com>2002-02-11 17:43:46 (GMT)
committerMarc-André Lemburg <mal@egenix.com>2002-02-11 17:43:46 (GMT)
commita0af63b2421916e748700c746e03f1bd1656b074 (patch)
treef54da661f32748c2b9502bec620eacb4632f78f2 /Lib
parentf2f219daa249df3006666c81cb570aeb07724574 (diff)
downloadcpython-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')
-rw-r--r--Lib/encodings/__init__.py19
-rw-r--r--Lib/encodings/aliases.py10
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',