summaryrefslogtreecommitdiffstats
path: root/Lib/encodings/koi8_u.py
diff options
context:
space:
mode:
authorNeal Norwitz <nnorwitz@gmail.com>2002-10-17 22:15:33 (GMT)
committerNeal Norwitz <nnorwitz@gmail.com>2002-10-17 22:15:33 (GMT)
commitd8407a70318122cdb84de497ce19615896b9ff62 (patch)
tree32fbd369f73ee8c0c1e1b117b6731125578a6ea6 /Lib/encodings/koi8_u.py
parent1e146e7876ea3fa18725f20258195ceb241c1687 (diff)
downloadcpython-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.py54
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)