import
codecs
class
Codec(codecs.Codec):
def
encode(
self
,
input
,errors
=
'strict'
):
return
codecs.charmap_encode(
input
,errors,encoding_table)
def
decode(
self
,
input
,errors
=
'strict'
):
return
codecs.charmap_decode(
input
,errors,decoding_table)
class
IncrementalEncoder(codecs.IncrementalEncoder):
def
encode(
self
,
input
, final
=
False
):
return
codecs.charmap_encode(
input
,
self
.errors,encoding_table)[
0
]
class
IncrementalDecoder(codecs.IncrementalDecoder):
def
decode(
self
,
input
, final
=
False
):
return
codecs.charmap_decode(
input
,
self
.errors,decoding_table)[
0
]
class
StreamWriter(Codec,codecs.StreamWriter):
pass
class
StreamReader(Codec,codecs.StreamReader):
pass
def
getregentry():
return
codecs.CodecInfo(
name
=
'cp1252'
,
encode
=
Codec().encode,
decode
=
Codec().decode,
incrementalencoder
=
IncrementalEncoder,
incrementaldecoder
=
IncrementalDecoder,
streamreader
=
StreamReader,
streamwriter
=
StreamWriter,
)
decoding_table
=
(
'\x00'
'\x01'
'\x02'
'\x03'
'\x04'
'\x05'
'\x06'
'\x07'
'\x08'
'\t'
'\n'
'\x0b'
'\x0c'
'\r'
'\x0e'
'\x0f'
'\x10'
'\x11'
'\x12'
'\x13'
'\x14'
'\x15'
'\x16'
'\x17'
'\x18'
'\x19'
'\x1a'
'\x1b'
'\x1c'
'\x1d'
'\x1e'
'\x1f'
' '
'!'
'"'
'#'
#
0x23
-
> NUMBER SIGN
'$'
'%'
'&'
"'"
'('
')'
'*'
'+'
','
'-'
'.'
'/'
'0'
'1'
'2'
'3'
'4'
'5'
'6'
'7'
'8'
'9'
':'
';'
'<'
'='
'>'
'?'
'@'
'A'
'B'
'C'
'D'
'E'
'F'
'G'
'H'
'I'
'J'
'K'
'L'
'M'
'N'
'O'
'P'
'Q'
'R'
'S'
'T'
'U'
'V'
'W'
'X'
'Y'
'Z'
'['
'\\'
']'
'^'
'_'
'`'
'a'
'b'
'c'
'd'
'e'
'f'
'g'
'h'
'i'
'j'
'k'
'l'
'm'
'n'
'o'
'p'
'q'
'r'
's'
't'
'u'
'v'
'w'
'x'
'y'
'z'
'{'
'|'
'}'
'~'
'\x7f'
'\u20ac'
'\ufffe'
'\u201a'
'\u0192'
'\u201e'
'\u2026'
'\u2020'
'\u2021'
'\u02c6'
'\u2030'
'\u0160'
'\u2039'
'\u0152'
'\ufffe'
'\u017d'
'\ufffe'
'\ufffe'
'\u2018'
'\u2019'
'\u201c'
'\u201d'
'\u2022'
'\u2013'
'\u2014'
'\u02dc'
'\u2122'
'\u0161'
'\u203a'
'\u0153'
[b]
'\ufffe'
'\u017e'
'\u0178'
'\xa0'
'\xa1'
'\xa2'
'\xa3'
'\xa4'
'\xa5'
'\xa6'
'\xa7'
'\xa8'
'\xa9'
'\xaa'
'\xab'
'\xac'
'\xad'
'\xae'
'\xaf'
'\xb0'
'\xb1'
'\xb2'
'\xb3'
'\xb4'
'\xb5'
'\xb6'
'\xb7'
'\xb8'
'\xb9'
'\xba'
'\xbb'
'\xbc'
'\xbd'
'\xbe'
'\xbf'
'\xc0'
'\xc1'
'\xc2'
'\xc3'
'\xc4'
'\xc5'
'\xc6'
'\xc7'
'\xc8'
'\xc9'
'\xca'
'\xcb'
'\xcc'
'\xcd'
'\xce'
'\xcf'
'\xd0'
'\xd1'
'\xd2'
'\xd3'
'\xd4'
'\xd5'
'\xd6'
'\xd7'
'\xd8'
'\xd9'
'\xda'
'\xdb'
'\xdc'
'\xdd'
'\xde'
'\xdf'
'\xe0'
'\xe1'
'\xe2'
'\xe3'
'\xe4'
'\xe5'
'\xe6'
'\xe7'
'\xe8'
'\xe9'
'\xea'
'\xeb'
'\xec'
'\xed'
'\xee'
'\xef'
'\xf0'
'\xf1'
'\xf2'
'\xf3'
'\xf4'
'\xf5'
'\xf6'
'\xf7'
'\xf8'
'\xf9'
'\xfa'
'\xfb'
'\xfc'
'\xfd'
'\xfe'
'\xff'
)
encoding_table
=
codecs.charmap_build(decoding_table)