From d8407a70318122cdb84de497ce19615896b9ff62 Mon Sep 17 00:00:00 2001 From: Neal Norwitz Date: Thu, 17 Oct 2002 22:15:33 +0000 Subject: [PATCH] Add new encoding for Ukrainian Cyrillic --- Lib/encodings/koi8_u.py | 54 +++++++++++++++++++++++++++++++++++++++++ Misc/ACKS | 1 + 2 files changed, 55 insertions(+) create mode 100644 Lib/encodings/koi8_u.py diff --git a/Lib/encodings/koi8_u.py b/Lib/encodings/koi8_u.py new file mode 100644 index 0000000000..43cd04fa0a --- /dev/null +++ b/Lib/encodings/koi8_u.py @@ -0,0 +1,54 @@ +""" Python Character Mapping Codec for KOI8U. + + This character scheme is compliant to RFC2319 + +Written by Marc-Andre Lemburg (mal@lemburg.com). +Modified by Maxim Dzumanenko . + +(c) Copyright 2002, Python Software Foundation. + +"""#" + +import codecs, koi8_r + +### 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 = koi8_r.decoding_map.copy() +decoding_map.update({ + 0x00a4: 0x0454, # CYRILLIC SMALL LETTER UKRAINIAN IE + 0x00a6: 0x0456, # CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I + 0x00a7: 0x0457, # CYRILLIC SMALL LETTER YI (UKRAINIAN) + 0x00ad: 0x0491, # CYRILLIC SMALL LETTER UKRAINIAN GHE WITH UPTURN + 0x00b4: 0x0403, # CYRILLIC CAPITAL LETTER UKRAINIAN IE + 0x00b6: 0x0406, # CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I + 0x00b7: 0x0407, # CYRILLIC CAPITAL LETTER YI (UKRAINIAN) + 0x00bd: 0x0490, # CYRILLIC CAPITAL LETTER UKRAINIAN GHE WITH UPTURN +}) + +### Encoding Map + +encoding_map = codecs.make_encoding_map(decoding_map) diff --git a/Misc/ACKS b/Misc/ACKS index 76d9d8e933..ee81ab811a 100644 --- a/Misc/ACKS +++ b/Misc/ACKS @@ -140,6 +140,7 @@ Robin Dunn Andy Dustman Gary Duzan Eugene Dvurechenski +Maxim Dzumanenko Hans Eckardt Grant Edwards Lance Ellinghaus -- 2.40.0