summaryrefslogtreecommitdiffstats
path: root/Lib/codecs.py
diff options
context:
space:
mode:
Diffstat (limited to 'Lib/codecs.py')
-rw-r--r--Lib/codecs.py21
1 files changed, 21 insertions, 0 deletions
diff --git a/Lib/codecs.py b/Lib/codecs.py
index b2eab1d..bdc8d02 100644
--- a/Lib/codecs.py
+++ b/Lib/codecs.py
@@ -554,6 +554,27 @@ def make_identity_dict(rng):
res[i]=i
return res
+def make_encoding_map(decoding_map):
+
+ """ Creates an encoding map from a decoding map.
+
+ If a target mapping in the decoding map occurrs multiple
+ times, then that target is mapped to None (undefined mapping),
+ causing an exception when encountered by the charmap codec
+ during translation.
+
+ One example where this happens is cp875.py which decodes
+ multiple character to \u001a.
+
+ """
+ m = {}
+ for k,v in decoding_map.items():
+ if not m.has_key(v):
+ m[v] = k
+ else:
+ m[v] = None
+ return m
+
### Tests
if __name__ == '__main__':