__ __ __ __ _____ _ _ _____ _ _ _ | \/ | \ \ / / | __ \ (_) | | / ____| | | | | | \ / |_ __\ V / | |__) | __ ___ ____ _| |_ ___ | (___ | |__ ___| | | | |\/| | '__|> < | ___/ '__| \ \ / / _` | __/ _ \ \___ \| '_ \ / _ \ | | | | | | |_ / . \ | | | | | |\ V / (_| | || __/ ____) | | | | __/ | | |_| |_|_(_)_/ \_\ |_| |_| |_| \_/ \__,_|\__\___| |_____/|_| |_|\___V 2.1 if you need WebShell for Seo everyday contact me on Telegram Telegram Address : @jackleetFor_More_Tools:
""" 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 return a CodecInfo object with encoder, decoder,
incrementalencoder, incrementaldecoder, streamwriter and streamreader
attributes 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
import sys
from . import aliases
_cache = {}
_unknown = '--unknown--'
_import_tail = ['*']
_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 isinstance(encoding, bytes):
encoding = str(encoding, "ascii")
chars = []
punct = False
for c in encoding:
if c.isalnum() or c == '.':
if punct and chars:
chars.append('_')
if c.isascii():
chars.append(c)
punct = False
else:
punct = True
return ''.join(chars)
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:
# ImportError may occur because 'encodings.(modname)' does not exist,
# or because it imports a name that does not exist (see mbcs and oem)
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 callable(entry[0]) or not callable(entry[1]) or \
(entry[2] is not None and not callable(entry[2])) or \
(entry[3] is not None and not callable(entry[3])) or \
(len(entry) > 4 and entry[4] is not None and not callable(entry[4])) or \
(len(entry) > 5 and entry[5] is not None and not callable(entry[5])):
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)
if sys.platform == 'win32':
# bpo-671666, bpo-46668: If Python does not implement a codec for current
# Windows ANSI code page, use the "mbcs" codec instead:
# WideCharToMultiByte() and MultiByteToWideChar() functions with CP_ACP.
# Python does not support custom code pages.
def _alias_mbcs(encoding):
try:
import _winapi
ansi_code_page = "cp%s" % _winapi.GetACP()
if encoding == ansi_code_page:
import encodings.mbcs
return encodings.mbcs.getregentry()
except ImportError:
# Imports may fail while we are shutting down
pass
codecs.register(_alias_mbcs)
| Name | Type | Size | Permission | Actions |
|---|---|---|---|---|
| __pycache__ | Folder | 0755 |
|
|
| __init__.py | File | 5.75 KB | 0644 |
|
| aliases.py | File | 15.31 KB | 0644 |
|
| ascii.py | File | 1.22 KB | 0644 |
|
| base64_codec.py | File | 1.5 KB | 0644 |
|
| big5.py | File | 1019 B | 0644 |
|
| big5hkscs.py | File | 1.01 KB | 0644 |
|
| bz2_codec.py | File | 2.2 KB | 0644 |
|
| charmap.py | File | 2.04 KB | 0644 |
|
| cp037.py | File | 12.81 KB | 0644 |
|
| cp1006.py | File | 13.25 KB | 0644 |
|
| cp1026.py | File | 12.81 KB | 0644 |
|
| cp1125.py | File | 33.79 KB | 0644 |
|
| cp1140.py | File | 12.8 KB | 0644 |
|
| cp1250.py | File | 13.37 KB | 0644 |
|
| cp1251.py | File | 13.05 KB | 0644 |
|
| cp1252.py | File | 13.19 KB | 0644 |
|
| cp1253.py | File | 12.79 KB | 0644 |
|
| cp1254.py | File | 13.19 KB | 0644 |
|
| cp1255.py | File | 12.17 KB | 0644 |
|
| cp1256.py | File | 12.51 KB | 0644 |
|
| cp1257.py | File | 13.06 KB | 0644 |
|
| cp1258.py | File | 13.05 KB | 0644 |
|
| cp273.py | File | 13.8 KB | 0644 |
|
| cp424.py | File | 11.77 KB | 0644 |
|
| cp437.py | File | 33.75 KB | 0644 |
|
| cp500.py | File | 12.81 KB | 0644 |
|
| cp720.py | File | 13.37 KB | 0644 |
|
| cp737.py | File | 33.87 KB | 0644 |
|
| cp775.py | File | 33.67 KB | 0644 |
|
| cp850.py | File | 33.31 KB | 0644 |
|
| cp852.py | File | 34.18 KB | 0644 |
|
| cp855.py | File | 33.06 KB | 0644 |
|
| cp856.py | File | 12.13 KB | 0644 |
|
| cp857.py | File | 33.11 KB | 0644 |
|
| cp858.py | File | 33.22 KB | 0644 |
|
| cp860.py | File | 33.87 KB | 0644 |
|
| cp861.py | File | 33.82 KB | 0644 |
|
| cp862.py | File | 32.59 KB | 0644 |
|
| cp863.py | File | 33.45 KB | 0644 |
|
| cp864.py | File | 32.87 KB | 0644 |
|
| cp865.py | File | 33.81 KB | 0644 |
|
| cp866.py | File | 33.59 KB | 0644 |
|
| cp869.py | File | 32.19 KB | 0644 |
|
| cp874.py | File | 12.3 KB | 0644 |
|
| cp875.py | File | 12.55 KB | 0644 |
|
| cp932.py | File | 1023 B | 0644 |
|
| cp949.py | File | 1023 B | 0644 |
|
| cp950.py | File | 1023 B | 0644 |
|
| euc_jis_2004.py | File | 1.03 KB | 0644 |
|
| euc_jisx0213.py | File | 1.03 KB | 0644 |
|
| euc_jp.py | File | 1 KB | 0644 |
|
| euc_kr.py | File | 1 KB | 0644 |
|
| gb18030.py | File | 1.01 KB | 0644 |
|
| gb2312.py | File | 1 KB | 0644 |
|
| gbk.py | File | 1015 B | 0644 |
|
| hex_codec.py | File | 1.47 KB | 0644 |
|
| hp_roman8.py | File | 13.16 KB | 0644 |
|
| hz.py | File | 1011 B | 0644 |
|
| idna.py | File | 9.48 KB | 0644 |
|
| iso2022_jp.py | File | 1.03 KB | 0644 |
|
| iso2022_jp_1.py | File | 1.04 KB | 0644 |
|
| iso2022_jp_2.py | File | 1.04 KB | 0644 |
|
| iso2022_jp_2004.py | File | 1.05 KB | 0644 |
|
| iso2022_jp_3.py | File | 1.04 KB | 0644 |
|
| iso2022_jp_ext.py | File | 1.04 KB | 0644 |
|
| iso2022_kr.py | File | 1.03 KB | 0644 |
|
| iso8859_1.py | File | 12.87 KB | 0644 |
|
| iso8859_10.py | File | 13.27 KB | 0644 |
|
| iso8859_11.py | File | 12.05 KB | 0644 |
|
| iso8859_13.py | File | 12.96 KB | 0644 |
|
| iso8859_14.py | File | 13.33 KB | 0644 |
|
| iso8859_15.py | File | 12.9 KB | 0644 |
|
| iso8859_16.py | File | 13.24 KB | 0644 |
|
| iso8859_2.py | File | 13.09 KB | 0644 |
|
| iso8859_3.py | File | 12.78 KB | 0644 |
|
| iso8859_4.py | File | 13.06 KB | 0644 |
|
| iso8859_5.py | File | 12.71 KB | 0644 |
|
| iso8859_6.py | File | 10.58 KB | 0644 |
|
| iso8859_7.py | File | 12.54 KB | 0644 |
|
| iso8859_8.py | File | 10.78 KB | 0644 |
|
| iso8859_9.py | File | 12.85 KB | 0644 |
|
| johab.py | File | 1023 B | 0644 |
|
| koi8_r.py | File | 13.46 KB | 0644 |
|
| koi8_t.py | File | 12.88 KB | 0644 |
|
| koi8_u.py | File | 13.44 KB | 0644 |
|
| kz1048.py | File | 13.4 KB | 0644 |
|
| latin_1.py | File | 1.23 KB | 0644 |
|
| mac_arabic.py | File | 35.61 KB | 0644 |
|
| mac_croatian.py | File | 13.31 KB | 0644 |
|
| mac_cyrillic.py | File | 13.14 KB | 0644 |
|
| mac_farsi.py | File | 14.81 KB | 0644 |
|
| mac_greek.py | File | 13.4 KB | 0644 |
|
| mac_iceland.py | File | 13.18 KB | 0644 |
|
| mac_latin2.py | File | 13.79 KB | 0644 |
|
| mac_roman.py | File | 13.16 KB | 0644 |
|
| mac_romanian.py | File | 13.34 KB | 0644 |
|
| mac_turkish.py | File | 13.2 KB | 0644 |
|
| mbcs.py | File | 1.18 KB | 0644 |
|
| oem.py | File | 1019 B | 0644 |
|
| palmos.py | File | 13.2 KB | 0644 |
|
| ptcp154.py | File | 13.69 KB | 0644 |
|
| punycode.py | File | 6.72 KB | 0644 |
|
| quopri_codec.py | File | 1.49 KB | 0644 |
|
| raw_unicode_escape.py | File | 1.3 KB | 0644 |
|
| rot_13.py | File | 2.39 KB | 0755 |
|
| shift_jis.py | File | 1.01 KB | 0644 |
|
| shift_jis_2004.py | File | 1.03 KB | 0644 |
|
| shift_jisx0213.py | File | 1.03 KB | 0644 |
|
| tis_620.py | File | 12.01 KB | 0644 |
|
| undefined.py | File | 1.27 KB | 0644 |
|
| unicode_escape.py | File | 1.27 KB | 0644 |
|
| utf_16.py | File | 5.11 KB | 0644 |
|
| utf_16_be.py | File | 1.01 KB | 0644 |
|
| utf_16_le.py | File | 1.01 KB | 0644 |
|
| utf_32.py | File | 5.01 KB | 0644 |
|
| utf_32_be.py | File | 930 B | 0644 |
|
| utf_32_le.py | File | 930 B | 0644 |
|
| utf_7.py | File | 946 B | 0644 |
|
| utf_8.py | File | 1005 B | 0644 |
|
| utf_8_sig.py | File | 4.04 KB | 0644 |
|
| uu_codec.py | File | 2.78 KB | 0644 |
|
| zlib_codec.py | File | 2.15 KB | 0644 |
|