diff options
author | Neal Norwitz <nnorwitz@gmail.com> | 2002-10-17 22:15:33 (GMT) |
---|---|---|
committer | Neal Norwitz <nnorwitz@gmail.com> | 2002-10-17 22:15:33 (GMT) |
commit | d8407a70318122cdb84de497ce19615896b9ff62 (patch) | |
tree | 32fbd369f73ee8c0c1e1b117b6731125578a6ea6 /Lib/encodings/koi8_u.py | |
parent | 1e146e7876ea3fa18725f20258195ceb241c1687 (diff) | |
download | cpython-d8407a70318122cdb84de497ce19615896b9ff62.zip cpython-d8407a70318122cdb84de497ce19615896b9ff62.tar.gz cpython-d8407a70318122cdb84de497ce19615896b9ff62.tar.bz2 |
Add new encoding for Ukrainian Cyrillic
Diffstat (limited to 'Lib/encodings/koi8_u.py')
-rw-r--r-- | Lib/encodings/koi8_u.py | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/Lib/encodings/koi8_u.py b/Lib/encodings/koi8_u.py new file mode 100644 index 0000000..43cd04f --- /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 <mvd@mylinux.com.ua>. + +(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) |