95 lines
2.7 KiB
Python
95 lines
2.7 KiB
Python
""" Python Character Mapping Codec generated from '8859-6.TXT'.
|
|
|
|
|
|
Written by Marc-Andre Lemburg (mal@lemburg.com).
|
|
|
|
(c) Copyright CNRI, All Rights Reserved. NO WARRANTY.
|
|
|
|
"""#"
|
|
|
|
import codecs
|
|
|
|
### 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 = {
|
|
|
|
0x00ac: 0x060c, # ARABIC COMMA
|
|
0x00bb: 0x061b, # ARABIC SEMICOLON
|
|
0x00bf: 0x061f, # ARABIC QUESTION MARK
|
|
0x00c1: 0x0621, # ARABIC LETTER HAMZA
|
|
0x00c2: 0x0622, # ARABIC LETTER ALEF WITH MADDA ABOVE
|
|
0x00c3: 0x0623, # ARABIC LETTER ALEF WITH HAMZA ABOVE
|
|
0x00c4: 0x0624, # ARABIC LETTER WAW WITH HAMZA ABOVE
|
|
0x00c5: 0x0625, # ARABIC LETTER ALEF WITH HAMZA BELOW
|
|
0x00c6: 0x0626, # ARABIC LETTER YEH WITH HAMZA ABOVE
|
|
0x00c7: 0x0627, # ARABIC LETTER ALEF
|
|
0x00c8: 0x0628, # ARABIC LETTER BEH
|
|
0x00c9: 0x0629, # ARABIC LETTER TEH MARBUTA
|
|
0x00ca: 0x062a, # ARABIC LETTER TEH
|
|
0x00cb: 0x062b, # ARABIC LETTER THEH
|
|
0x00cc: 0x062c, # ARABIC LETTER JEEM
|
|
0x00cd: 0x062d, # ARABIC LETTER HAH
|
|
0x00ce: 0x062e, # ARABIC LETTER KHAH
|
|
0x00cf: 0x062f, # ARABIC LETTER DAL
|
|
0x00d0: 0x0630, # ARABIC LETTER THAL
|
|
0x00d1: 0x0631, # ARABIC LETTER REH
|
|
0x00d2: 0x0632, # ARABIC LETTER ZAIN
|
|
0x00d3: 0x0633, # ARABIC LETTER SEEN
|
|
0x00d4: 0x0634, # ARABIC LETTER SHEEN
|
|
0x00d5: 0x0635, # ARABIC LETTER SAD
|
|
0x00d6: 0x0636, # ARABIC LETTER DAD
|
|
0x00d7: 0x0637, # ARABIC LETTER TAH
|
|
0x00d8: 0x0638, # ARABIC LETTER ZAH
|
|
0x00d9: 0x0639, # ARABIC LETTER AIN
|
|
0x00da: 0x063a, # ARABIC LETTER GHAIN
|
|
0x00e0: 0x0640, # ARABIC TATWEEL
|
|
0x00e1: 0x0641, # ARABIC LETTER FEH
|
|
0x00e2: 0x0642, # ARABIC LETTER QAF
|
|
0x00e3: 0x0643, # ARABIC LETTER KAF
|
|
0x00e4: 0x0644, # ARABIC LETTER LAM
|
|
0x00e5: 0x0645, # ARABIC LETTER MEEM
|
|
0x00e6: 0x0646, # ARABIC LETTER NOON
|
|
0x00e7: 0x0647, # ARABIC LETTER HEH
|
|
0x00e8: 0x0648, # ARABIC LETTER WAW
|
|
0x00e9: 0x0649, # ARABIC LETTER ALEF MAKSURA
|
|
0x00ea: 0x064a, # ARABIC LETTER YEH
|
|
0x00eb: 0x064b, # ARABIC FATHATAN
|
|
0x00ec: 0x064c, # ARABIC DAMMATAN
|
|
0x00ed: 0x064d, # ARABIC KASRATAN
|
|
0x00ee: 0x064e, # ARABIC FATHA
|
|
0x00ef: 0x064f, # ARABIC DAMMA
|
|
0x00f0: 0x0650, # ARABIC KASRA
|
|
0x00f1: 0x0651, # ARABIC SHADDA
|
|
0x00f2: 0x0652, # ARABIC SUKUN
|
|
}
|
|
|
|
### Encoding Map
|
|
|
|
encoding_map = {}
|
|
for k,v in decoding_map.items():
|
|
encoding_map[v] = k
|