From 13b8bc54788ab4112f94160e2253bcf86da96c95 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20v=2E=20L=C3=B6wis?= Date: Thu, 7 Jun 2001 19:39:25 +0000 Subject: Patch #429957: Add support for cp1140, which is identical to cp037, with the addition of the euro character. Also added a few EDBDIC aliases. --- Lib/encodings/aliases.py | 5 +++++ Lib/encodings/cp1140.py | 45 +++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 50 insertions(+) create mode 100644 Lib/encodings/cp1140.py 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) + -- cgit v0.12