diff options
author | Martin v. Löwis <martin@v.loewis.de> | 2001-06-07 19:39:25 (GMT) |
---|---|---|
committer | Martin v. Löwis <martin@v.loewis.de> | 2001-06-07 19:39:25 (GMT) |
commit | 13b8bc54788ab4112f94160e2253bcf86da96c95 (patch) | |
tree | bdeef540ccb9570e310b79866b7c51bcf43209d9 | |
parent | e2ccb89513c2a487576fcec627aa7d50a719c444 (diff) | |
download | cpython-13b8bc54788ab4112f94160e2253bcf86da96c95.zip cpython-13b8bc54788ab4112f94160e2253bcf86da96c95.tar.gz cpython-13b8bc54788ab4112f94160e2253bcf86da96c95.tar.bz2 |
Patch #429957: Add support for cp1140, which is identical to cp037,
with the addition of the euro character.
Also added a few EDBDIC aliases.
-rw-r--r-- | Lib/encodings/aliases.py | 5 | ||||
-rw-r--r-- | Lib/encodings/cp1140.py | 45 |
2 files changed, 50 insertions, 0 deletions
diff --git a/Lib/encodings/aliases.py b/Lib/encodings/aliases.py index cb9251c..fd9b3bd 100644 --- a/Lib/encodings/aliases.py +++ b/Lib/encodings/aliases.py @@ -32,6 +32,11 @@ aliases = { # ASCII 'us_ascii': 'ascii', + # EBCDIC + 'ebcdic_cp_us': 'cp037', + 'ibm039': 'cp037', + 'ibm1140': 'cp1140', + # ISO '8859': 'latin_1', 'iso8859': 'latin_1', diff --git a/Lib/encodings/cp1140.py b/Lib/encodings/cp1140.py new file mode 100644 index 0000000..68f64ab --- /dev/null +++ b/Lib/encodings/cp1140.py @@ -0,0 +1,45 @@ +""" Python Character Mapping Codec for cp1140 + +Written by Brian Quinlan(brian@sweetapp.com). NO WARRANTY. +""" + +import codecs +import copy +import cp037 + +### Codec APIs + +class Codec(codecs.Codec): + + def encode(self,input,errors='strict'): + + return codecs.charmap_encode(input,errors,encoding_map) + + def decode(self,input,errors='strict'): + + return codecs.charmap_decode(input,errors,decoding_map) + +class StreamWriter(Codec,codecs.StreamWriter): + pass + +class StreamReader(Codec,codecs.StreamReader): + pass + +### encodings module API + +def getregentry(): + + return (Codec().encode,Codec().decode,StreamReader,StreamWriter) + +### Decoding Map + +decoding_map = copy.copy(cp037.decoding_map) + +decoding_map.update({ + 0x009f: 0x20ac # EURO SIGN +}) + +### Encoding Map + +encoding_map = codecs.make_encoding_map(decoding_map) + |