diff options
Diffstat (limited to 'Lib/codecs.py')
-rw-r--r-- | Lib/codecs.py | 21 |
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__': |