Linux premium180.web-hosting.com 4.18.0-553.54.1.lve.el8.x86_64 #1 SMP Wed Jun 4 13:01:13 UTC 2025 x86_64
LiteSpeed
: 162.0.209.168 | : 216.73.216.187
Cant Read [ /etc/named.conf ]
8.3.30
nortrmdp
www.github.com/MadExploits
Terminal
AUTO ROOT
Adminer
Backdoor Destroyer
Linux Exploit
Lock Shell
Lock File
Create User
CREATE RDP
PHP Mailer
BACKCONNECT
UNLOCK SHELL
HASH IDENTIFIER
CPANEL RESET
CREATE WP USER
BLACK DEFEND!
README
+ Create Folder
+ Create File
/
lib64 /
python2.7 /
encodings /
[ HOME SHELL ]
Name
Size
Permission
Action
__init__.py
5.56
KB
-rw-r--r--
__init__.pyc
4.28
KB
-rw-r--r--
__init__.pyo
4.28
KB
-rw-r--r--
aliases.py
14.5
KB
-rw-r--r--
aliases.pyc
8.56
KB
-rw-r--r--
aliases.pyo
8.56
KB
-rw-r--r--
ascii.py
1.22
KB
-rw-r--r--
ascii.pyc
2.23
KB
-rw-r--r--
ascii.pyo
2.23
KB
-rw-r--r--
base64_codec.py
2.32
KB
-rw-r--r--
base64_codec.pyc
3.77
KB
-rw-r--r--
base64_codec.pyo
3.63
KB
-rw-r--r--
big5.py
1019
B
-rw-r--r--
big5.pyc
1.73
KB
-rw-r--r--
big5.pyo
1.73
KB
-rw-r--r--
big5hkscs.py
1.01
KB
-rw-r--r--
big5hkscs.pyc
1.77
KB
-rw-r--r--
big5hkscs.pyo
1.77
KB
-rw-r--r--
bz2_codec.py
2.96
KB
-rw-r--r--
bz2_codec.pyc
4.65
KB
-rw-r--r--
bz2_codec.pyo
4.52
KB
-rw-r--r--
charmap.py
2.04
KB
-rw-r--r--
charmap.pyc
3.42
KB
-rw-r--r--
charmap.pyo
3.42
KB
-rw-r--r--
cp037.py
13.06
KB
-rw-r--r--
cp037.pyc
2.79
KB
-rw-r--r--
cp037.pyo
2.79
KB
-rw-r--r--
cp1006.py
13.5
KB
-rw-r--r--
cp1006.pyc
2.88
KB
-rw-r--r--
cp1006.pyo
2.88
KB
-rw-r--r--
cp1026.py
13.06
KB
-rw-r--r--
cp1026.pyc
2.81
KB
-rw-r--r--
cp1026.pyo
2.81
KB
-rw-r--r--
cp1140.py
13.05
KB
-rw-r--r--
cp1140.pyc
2.79
KB
-rw-r--r--
cp1140.pyo
2.79
KB
-rw-r--r--
cp1250.py
13.62
KB
-rw-r--r--
cp1250.pyc
2.83
KB
-rw-r--r--
cp1250.pyo
2.83
KB
-rw-r--r--
cp1251.py
13.3
KB
-rw-r--r--
cp1251.pyc
2.83
KB
-rw-r--r--
cp1251.pyo
2.83
KB
-rw-r--r--
cp1252.py
13.44
KB
-rw-r--r--
cp1252.pyc
2.83
KB
-rw-r--r--
cp1252.pyo
2.83
KB
-rw-r--r--
cp1253.py
13.04
KB
-rw-r--r--
cp1253.pyc
2.84
KB
-rw-r--r--
cp1253.pyo
2.84
KB
-rw-r--r--
cp1254.py
13.44
KB
-rw-r--r--
cp1254.pyc
2.83
KB
-rw-r--r--
cp1254.pyo
2.83
KB
-rw-r--r--
cp1255.py
12.42
KB
-rw-r--r--
cp1255.pyc
2.85
KB
-rw-r--r--
cp1255.pyo
2.85
KB
-rw-r--r--
cp1256.py
12.76
KB
-rw-r--r--
cp1256.pyc
2.83
KB
-rw-r--r--
cp1256.pyo
2.83
KB
-rw-r--r--
cp1257.py
13.31
KB
-rw-r--r--
cp1257.pyc
2.83
KB
-rw-r--r--
cp1257.pyo
2.83
KB
-rw-r--r--
cp1258.py
13.3
KB
-rw-r--r--
cp1258.pyc
2.83
KB
-rw-r--r--
cp1258.pyo
2.83
KB
-rw-r--r--
cp424.py
12.02
KB
-rw-r--r--
cp424.pyc
2.82
KB
-rw-r--r--
cp424.pyo
2.82
KB
-rw-r--r--
cp437.py
34
KB
-rw-r--r--
cp437.pyc
7.9
KB
-rw-r--r--
cp437.pyo
7.9
KB
-rw-r--r--
cp500.py
13.06
KB
-rw-r--r--
cp500.pyc
2.79
KB
-rw-r--r--
cp500.pyo
2.79
KB
-rw-r--r--
cp720.py
13.37
KB
-rw-r--r--
cp720.pyc
2.89
KB
-rw-r--r--
cp720.pyo
2.89
KB
-rw-r--r--
cp737.py
34.12
KB
-rw-r--r--
cp737.pyc
8.13
KB
-rw-r--r--
cp737.pyo
8.13
KB
-rw-r--r--
cp775.py
33.92
KB
-rw-r--r--
cp775.pyc
7.92
KB
-rw-r--r--
cp775.pyo
7.92
KB
-rw-r--r--
cp850.py
33.56
KB
-rw-r--r--
cp850.pyc
7.66
KB
-rw-r--r--
cp850.pyo
7.66
KB
-rw-r--r--
cp852.py
34.43
KB
-rw-r--r--
cp852.pyc
7.92
KB
-rw-r--r--
cp852.pyo
7.92
KB
-rw-r--r--
cp855.py
33.31
KB
-rw-r--r--
cp855.pyc
8.1
KB
-rw-r--r--
cp855.pyo
8.1
KB
-rw-r--r--
cp856.py
12.38
KB
-rw-r--r--
cp856.pyc
2.85
KB
-rw-r--r--
cp856.pyo
2.85
KB
-rw-r--r--
cp857.py
33.36
KB
-rw-r--r--
cp857.pyc
7.65
KB
-rw-r--r--
cp857.pyo
7.65
KB
-rw-r--r--
cp858.py
33.47
KB
-rw-r--r--
cp858.pyc
7.63
KB
-rw-r--r--
cp858.pyo
7.63
KB
-rw-r--r--
cp860.py
34.12
KB
-rw-r--r--
cp860.pyc
7.89
KB
-rw-r--r--
cp860.pyo
7.89
KB
-rw-r--r--
cp861.py
34.07
KB
-rw-r--r--
cp861.pyc
7.9
KB
-rw-r--r--
cp861.pyo
7.9
KB
-rw-r--r--
cp862.py
32.84
KB
-rw-r--r--
cp862.pyc
8.03
KB
-rw-r--r--
cp862.pyo
8.03
KB
-rw-r--r--
cp863.py
33.7
KB
-rw-r--r--
cp863.pyc
7.9
KB
-rw-r--r--
cp863.pyo
7.9
KB
-rw-r--r--
cp864.py
33.12
KB
-rw-r--r--
cp864.pyc
8.03
KB
-rw-r--r--
cp864.pyo
8.03
KB
-rw-r--r--
cp865.py
34.06
KB
-rw-r--r--
cp865.pyc
7.9
KB
-rw-r--r--
cp865.pyo
7.9
KB
-rw-r--r--
cp866.py
33.84
KB
-rw-r--r--
cp866.pyc
8.13
KB
-rw-r--r--
cp866.pyo
8.13
KB
-rw-r--r--
cp869.py
32.44
KB
-rw-r--r--
cp869.pyc
7.94
KB
-rw-r--r--
cp869.pyo
7.94
KB
-rw-r--r--
cp874.py
12.55
KB
-rw-r--r--
cp874.pyc
2.92
KB
-rw-r--r--
cp874.pyo
2.92
KB
-rw-r--r--
cp875.py
12.8
KB
-rw-r--r--
cp875.pyc
2.79
KB
-rw-r--r--
cp875.pyo
2.79
KB
-rw-r--r--
cp932.py
1023
B
-rw-r--r--
cp932.pyc
1.74
KB
-rw-r--r--
cp932.pyo
1.74
KB
-rw-r--r--
cp949.py
1023
B
-rw-r--r--
cp949.pyc
1.74
KB
-rw-r--r--
cp949.pyo
1.74
KB
-rw-r--r--
cp950.py
1023
B
-rw-r--r--
cp950.pyc
1.74
KB
-rw-r--r--
cp950.pyo
1.74
KB
-rw-r--r--
euc_jis_2004.py
1.03
KB
-rw-r--r--
euc_jis_2004.pyc
1.79
KB
-rw-r--r--
euc_jis_2004.pyo
1.79
KB
-rw-r--r--
euc_jisx0213.py
1.03
KB
-rw-r--r--
euc_jisx0213.pyc
1.79
KB
-rw-r--r--
euc_jisx0213.pyo
1.79
KB
-rw-r--r--
euc_jp.py
1
KB
-rw-r--r--
euc_jp.pyc
1.74
KB
-rw-r--r--
euc_jp.pyo
1.74
KB
-rw-r--r--
euc_kr.py
1
KB
-rw-r--r--
euc_kr.pyc
1.74
KB
-rw-r--r--
euc_kr.pyo
1.74
KB
-rw-r--r--
gb18030.py
1.01
KB
-rw-r--r--
gb18030.pyc
1.75
KB
-rw-r--r--
gb18030.pyo
1.75
KB
-rw-r--r--
gb2312.py
1
KB
-rw-r--r--
gb2312.pyc
1.74
KB
-rw-r--r--
gb2312.pyo
1.74
KB
-rw-r--r--
gbk.py
1015
B
-rw-r--r--
gbk.pyc
1.72
KB
-rw-r--r--
gbk.pyo
1.72
KB
-rw-r--r--
hex_codec.py
2.29
KB
-rw-r--r--
hex_codec.pyc
3.73
KB
-rw-r--r--
hex_codec.pyo
3.58
KB
-rw-r--r--
hp_roman8.py
7.22
KB
-rw-r--r--
hp_roman8.pyc
4.04
KB
-rw-r--r--
hp_roman8.pyo
4.04
KB
-rw-r--r--
hz.py
1011
B
-rw-r--r--
hz.pyc
1.71
KB
-rw-r--r--
hz.pyo
1.71
KB
-rw-r--r--
idna.py
8.81
KB
-rw-r--r--
idna.pyc
6.47
KB
-rw-r--r--
idna.pyo
6.47
KB
-rw-r--r--
iso2022_jp.py
1.03
KB
-rw-r--r--
iso2022_jp.pyc
1.78
KB
-rw-r--r--
iso2022_jp.pyo
1.78
KB
-rw-r--r--
iso2022_jp_1.py
1.04
KB
-rw-r--r--
iso2022_jp_1.pyc
1.8
KB
-rw-r--r--
iso2022_jp_1.pyo
1.8
KB
-rw-r--r--
iso2022_jp_2.py
1.04
KB
-rw-r--r--
iso2022_jp_2.pyc
1.8
KB
-rw-r--r--
iso2022_jp_2.pyo
1.8
KB
-rw-r--r--
iso2022_jp_2004.py
1.05
KB
-rw-r--r--
iso2022_jp_2004.pyc
1.82
KB
-rw-r--r--
iso2022_jp_2004.pyo
1.82
KB
-rw-r--r--
iso2022_jp_3.py
1.04
KB
-rw-r--r--
iso2022_jp_3.pyc
1.8
KB
-rw-r--r--
iso2022_jp_3.pyo
1.8
KB
-rw-r--r--
iso2022_jp_ext.py
1.04
KB
-rw-r--r--
iso2022_jp_ext.pyc
1.81
KB
-rw-r--r--
iso2022_jp_ext.pyo
1.81
KB
-rw-r--r--
iso2022_kr.py
1.03
KB
-rw-r--r--
iso2022_kr.pyc
1.78
KB
-rw-r--r--
iso2022_kr.pyo
1.78
KB
-rw-r--r--
iso8859_1.py
13.12
KB
-rw-r--r--
iso8859_1.pyc
2.83
KB
-rw-r--r--
iso8859_1.pyo
2.83
KB
-rw-r--r--
iso8859_10.py
13.52
KB
-rw-r--r--
iso8859_10.pyc
2.84
KB
-rw-r--r--
iso8859_10.pyo
2.84
KB
-rw-r--r--
iso8859_11.py
12.3
KB
-rw-r--r--
iso8859_11.pyc
2.94
KB
-rw-r--r--
iso8859_11.pyo
2.94
KB
-rw-r--r--
iso8859_13.py
13.21
KB
-rw-r--r--
iso8859_13.pyc
2.85
KB
-rw-r--r--
iso8859_13.pyo
2.85
KB
-rw-r--r--
iso8859_14.py
13.58
KB
-rw-r--r--
iso8859_14.pyc
2.87
KB
-rw-r--r--
iso8859_14.pyo
2.87
KB
-rw-r--r--
iso8859_15.py
13.15
KB
-rw-r--r--
iso8859_15.pyc
2.84
KB
-rw-r--r--
iso8859_15.pyo
2.84
KB
-rw-r--r--
iso8859_16.py
13.49
KB
-rw-r--r--
iso8859_16.pyc
2.85
KB
-rw-r--r--
iso8859_16.pyo
2.85
KB
-rw-r--r--
iso8859_2.py
13.34
KB
-rw-r--r--
iso8859_2.pyc
2.83
KB
-rw-r--r--
iso8859_2.pyo
2.83
KB
-rw-r--r--
iso8859_3.py
13.03
KB
-rw-r--r--
iso8859_3.pyc
2.84
KB
-rw-r--r--
iso8859_3.pyo
2.84
KB
-rw-r--r--
iso8859_4.py
13.31
KB
-rw-r--r--
iso8859_4.pyc
2.83
KB
-rw-r--r--
iso8859_4.pyo
2.83
KB
-rw-r--r--
iso8859_5.py
12.96
KB
-rw-r--r--
iso8859_5.pyc
2.83
KB
-rw-r--r--
iso8859_5.pyo
2.83
KB
-rw-r--r--
iso8859_6.py
10.83
KB
-rw-r--r--
iso8859_6.pyc
2.87
KB
-rw-r--r--
iso8859_6.pyo
2.87
KB
-rw-r--r--
iso8859_7.py
12.79
KB
-rw-r--r--
iso8859_7.pyc
2.84
KB
-rw-r--r--
iso8859_7.pyo
2.84
KB
-rw-r--r--
iso8859_8.py
11.03
KB
-rw-r--r--
iso8859_8.pyc
2.87
KB
-rw-r--r--
iso8859_8.pyo
2.87
KB
-rw-r--r--
iso8859_9.py
13.1
KB
-rw-r--r--
iso8859_9.pyc
2.83
KB
-rw-r--r--
iso8859_9.pyo
2.83
KB
-rw-r--r--
johab.py
1023
B
-rw-r--r--
johab.pyc
1.74
KB
-rw-r--r--
johab.pyo
1.74
KB
-rw-r--r--
koi8_r.py
13.71
KB
-rw-r--r--
koi8_r.pyc
2.85
KB
-rw-r--r--
koi8_r.pyo
2.85
KB
-rw-r--r--
koi8_u.py
13.69
KB
-rw-r--r--
koi8_u.pyc
2.84
KB
-rw-r--r--
koi8_u.pyo
2.84
KB
-rw-r--r--
latin_1.py
1.23
KB
-rw-r--r--
latin_1.pyc
2.26
KB
-rw-r--r--
latin_1.pyo
2.26
KB
-rw-r--r--
mac_arabic.py
35.86
KB
-rw-r--r--
mac_arabic.pyc
7.86
KB
-rw-r--r--
mac_arabic.pyo
7.86
KB
-rw-r--r--
mac_centeuro.py
14.02
KB
-rw-r--r--
mac_centeuro.pyc
2.9
KB
-rw-r--r--
mac_centeuro.pyo
2.9
KB
-rw-r--r--
mac_croatian.py
13.56
KB
-rw-r--r--
mac_croatian.pyc
2.91
KB
-rw-r--r--
mac_croatian.pyo
2.91
KB
-rw-r--r--
mac_cyrillic.py
13.39
KB
-rw-r--r--
mac_cyrillic.pyc
2.9
KB
-rw-r--r--
mac_cyrillic.pyo
2.9
KB
-rw-r--r--
mac_farsi.py
15.06
KB
-rw-r--r--
mac_farsi.pyc
2.81
KB
-rw-r--r--
mac_farsi.pyo
2.81
KB
-rw-r--r--
mac_greek.py
13.65
KB
-rw-r--r--
mac_greek.pyc
2.85
KB
-rw-r--r--
mac_greek.pyo
2.85
KB
-rw-r--r--
mac_iceland.py
13.43
KB
-rw-r--r--
mac_iceland.pyc
2.89
KB
-rw-r--r--
mac_iceland.pyo
2.89
KB
-rw-r--r--
mac_latin2.py
8.36
KB
-rw-r--r--
mac_latin2.pyc
4.82
KB
-rw-r--r--
mac_latin2.pyo
4.82
KB
-rw-r--r--
mac_roman.py
13.41
KB
-rw-r--r--
mac_roman.pyc
2.87
KB
-rw-r--r--
mac_roman.pyo
2.87
KB
-rw-r--r--
mac_romanian.py
13.59
KB
-rw-r--r--
mac_romanian.pyc
2.91
KB
-rw-r--r--
mac_romanian.pyo
2.91
KB
-rw-r--r--
mac_turkish.py
13.45
KB
-rw-r--r--
mac_turkish.pyc
2.89
KB
-rw-r--r--
mac_turkish.pyo
2.89
KB
-rw-r--r--
mbcs.py
1.18
KB
-rw-r--r--
mbcs.pyc
2
KB
-rw-r--r--
mbcs.pyo
2
KB
-rw-r--r--
palmos.py
2.87
KB
-rw-r--r--
palmos.pyc
3.02
KB
-rw-r--r--
palmos.pyo
3.02
KB
-rw-r--r--
ptcp154.py
8.74
KB
-rw-r--r--
ptcp154.pyc
4.8
KB
-rw-r--r--
ptcp154.pyo
4.8
KB
-rw-r--r--
punycode.py
6.65
KB
-rw-r--r--
punycode.pyc
7.81
KB
-rw-r--r--
punycode.pyo
7.81
KB
-rw-r--r--
quopri_codec.py
2.14
KB
-rw-r--r--
quopri_codec.pyc
3.59
KB
-rw-r--r--
quopri_codec.pyo
3.52
KB
-rw-r--r--
raw_unicode_escape.py
1.18
KB
-rw-r--r--
raw_unicode_escape.pyc
2.18
KB
-rw-r--r--
raw_unicode_escape.pyo
2.18
KB
-rw-r--r--
rot_13.py
2.55
KB
-rwxr-xr-x
rot_13.pyc
3.6
KB
-rw-r--r--
rot_13.pyo
3.6
KB
-rw-r--r--
shift_jis.py
1.01
KB
-rw-r--r--
shift_jis.pyc
1.77
KB
-rw-r--r--
shift_jis.pyo
1.77
KB
-rw-r--r--
shift_jis_2004.py
1.03
KB
-rw-r--r--
shift_jis_2004.pyc
1.81
KB
-rw-r--r--
shift_jis_2004.pyo
1.81
KB
-rw-r--r--
shift_jisx0213.py
1.03
KB
-rw-r--r--
shift_jisx0213.pyc
1.81
KB
-rw-r--r--
shift_jisx0213.pyo
1.81
KB
-rw-r--r--
string_escape.py
953
B
-rw-r--r--
string_escape.pyc
2.04
KB
-rw-r--r--
string_escape.pyo
2.04
KB
-rw-r--r--
tis_620.py
12.26
KB
-rw-r--r--
tis_620.pyc
2.9
KB
-rw-r--r--
tis_620.pyo
2.9
KB
-rw-r--r--
undefined.py
1.27
KB
-rw-r--r--
undefined.pyc
2.56
KB
-rw-r--r--
undefined.pyo
2.56
KB
-rw-r--r--
unicode_escape.py
1.16
KB
-rw-r--r--
unicode_escape.pyc
2.13
KB
-rw-r--r--
unicode_escape.pyo
2.13
KB
-rw-r--r--
unicode_internal.py
1.17
KB
-rw-r--r--
unicode_internal.pyc
2.15
KB
-rw-r--r--
unicode_internal.pyo
2.15
KB
-rw-r--r--
utf_16.py
3.89
KB
-rw-r--r--
utf_16.pyc
5.09
KB
-rw-r--r--
utf_16.pyo
5.09
KB
-rw-r--r--
utf_16_be.py
1.01
KB
-rw-r--r--
utf_16_be.pyc
1.97
KB
-rw-r--r--
utf_16_be.pyo
1.97
KB
-rw-r--r--
utf_16_le.py
1.01
KB
-rw-r--r--
utf_16_le.pyc
1.97
KB
-rw-r--r--
utf_16_le.pyo
1.97
KB
-rw-r--r--
utf_32.py
5.01
KB
-rw-r--r--
utf_32.pyc
5.64
KB
-rw-r--r--
utf_32.pyo
5.64
KB
-rw-r--r--
utf_32_be.py
930
B
-rw-r--r--
utf_32_be.pyc
1.86
KB
-rw-r--r--
utf_32_be.pyo
1.86
KB
-rw-r--r--
utf_32_le.py
930
B
-rw-r--r--
utf_32_le.pyc
1.86
KB
-rw-r--r--
utf_32_le.pyo
1.86
KB
-rw-r--r--
utf_7.py
946
B
-rw-r--r--
utf_7.pyc
1.86
KB
-rw-r--r--
utf_7.pyo
1.86
KB
-rw-r--r--
utf_8.py
1005
B
-rw-r--r--
utf_8.pyc
1.92
KB
-rw-r--r--
utf_8.pyo
1.92
KB
-rw-r--r--
utf_8_sig.py
3.6
KB
-rw-r--r--
utf_8_sig.pyc
4.91
KB
-rw-r--r--
utf_8_sig.pyo
4.91
KB
-rw-r--r--
uu_codec.py
3.81
KB
-rw-r--r--
uu_codec.pyc
4.9
KB
-rw-r--r--
uu_codec.pyo
4.83
KB
-rw-r--r--
zlib_codec.py
2.98
KB
-rw-r--r--
zlib_codec.pyc
4.57
KB
-rw-r--r--
zlib_codec.pyo
4.44
KB
-rw-r--r--
Delete
Unzip
Zip
${this.title}
Close
Code Editor : __init__.py
""" Standard "encodings" Package Standard Python encoding modules are stored in this package directory. Codec modules must have names corresponding to normalized encoding names as defined in the normalize_encoding() function below, e.g. 'utf-8' must be implemented by the module 'utf_8.py'. Each codec module must export the following interface: * getregentry() -> codecs.CodecInfo object The getregentry() API must a CodecInfo object with encoder, decoder, incrementalencoder, incrementaldecoder, streamwriter and streamreader atttributes which adhere to the Python Codec Interface Standard. In addition, a module may optionally also define the following APIs which are then used by the package's codec search function: * getaliases() -> sequence of encoding name strings to use as aliases Alias names returned by getaliases() must be normalized encoding names as defined by normalize_encoding(). Written by Marc-Andre Lemburg (mal@lemburg.com). (c) Copyright CNRI, All Rights Reserved. NO WARRANTY. """#" import codecs from encodings import aliases import __builtin__ _cache = {} _unknown = '--unknown--' _import_tail = ['*'] _norm_encoding_map = (' . ' '0123456789 ABCDEFGHIJKLMNOPQRSTUVWXYZ ' ' abcdefghijklmnopqrstuvwxyz ' ' ' ' ' ' ') _aliases = aliases.aliases class CodecRegistryError(LookupError, SystemError): pass def normalize_encoding(encoding): """ Normalize an encoding name. Normalization works as follows: all non-alphanumeric characters except the dot used for Python package names are collapsed and replaced with a single underscore, e.g. ' -;#' becomes '_'. Leading and trailing underscores are removed. Note that encoding names should be ASCII only; if they do use non-ASCII characters, these must be Latin-1 compatible. """ # Make sure we have an 8-bit string, because .translate() works # differently for Unicode strings. if hasattr(__builtin__, "unicode") and isinstance(encoding, unicode): # Note that .encode('latin-1') does *not* use the codec # registry, so this call doesn't recurse. (See unicodeobject.c # PyUnicode_AsEncodedString() for details) encoding = encoding.encode('latin-1') return '_'.join(encoding.translate(_norm_encoding_map).split()) def search_function(encoding): # Cache lookup entry = _cache.get(encoding, _unknown) if entry is not _unknown: return entry # Import the module: # # First try to find an alias for the normalized encoding # name and lookup the module using the aliased name, then try to # lookup the module using the standard import scheme, i.e. first # try in the encodings package, then at top-level. # norm_encoding = normalize_encoding(encoding) aliased_encoding = _aliases.get(norm_encoding) or \ _aliases.get(norm_encoding.replace('.', '_')) if aliased_encoding is not None: modnames = [aliased_encoding, norm_encoding] else: modnames = [norm_encoding] for modname in modnames: if not modname or '.' in modname: continue try: # Import is absolute to prevent the possibly malicious import of a # module with side-effects that is not in the 'encodings' package. mod = __import__('encodings.' + modname, fromlist=_import_tail, level=0) except ImportError: pass else: break else: mod = None try: getregentry = mod.getregentry except AttributeError: # Not a codec module mod = None if mod is None: # Cache misses _cache[encoding] = None return None # Now ask the module for the registry entry entry = getregentry() if not isinstance(entry, codecs.CodecInfo): if not 4 <= len(entry) <= 7: raise CodecRegistryError,\ 'module "%s" (%s) failed to register' % \ (mod.__name__, mod.__file__) if not hasattr(entry[0], '__call__') or \ not hasattr(entry[1], '__call__') or \ (entry[2] is not None and not hasattr(entry[2], '__call__')) or \ (entry[3] is not None and not hasattr(entry[3], '__call__')) or \ (len(entry) > 4 and entry[4] is not None and not hasattr(entry[4], '__call__')) or \ (len(entry) > 5 and entry[5] is not None and not hasattr(entry[5], '__call__')): raise CodecRegistryError,\ 'incompatible codecs in module "%s" (%s)' % \ (mod.__name__, mod.__file__) if len(entry)<7 or entry[6] is None: entry += (None,)*(6-len(entry)) + (mod.__name__.split(".", 1)[1],) entry = codecs.CodecInfo(*entry) # Cache the codec registry entry _cache[encoding] = entry # Register its aliases (without overwriting previously registered # aliases) try: codecaliases = mod.getaliases() except AttributeError: pass else: for alias in codecaliases: if alias not in _aliases: _aliases[alias] = modname # Return the registry entry return entry # Register the search_function in the Python codec registry codecs.register(search_function)
Close