8.2.34 | Linux | www-data (uid:33)
👁 View: __init__.py
📁 //snap/core20/current/lib/python3.8/encodings/__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 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('_') 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': 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)
← Back
💻 Terminal
📤 Upload
📂
Click or Drag & Drop
📁 //snap/core20/current/lib/python3.8/encodings
NameSizePermModifiedActions
📁 __pycache__/-07552026-09-01 05:21🗑 Delete
__init__.py5.5K06442026-03-03 11:49👁 View ✏️ Edit 📝 Rename 📦 Move 🗑 Del
aliases.py15.3K06442026-03-03 11:49👁 View ✏️ Edit 📝 Rename 📦 Move 🗑 Del
ascii.py1.2K06442026-03-03 11:49👁 View ✏️ Edit 📝 Rename 📦 Move 🗑 Del
base64_codec.py1.5K06442026-03-03 11:49👁 View ✏️ Edit 📝 Rename 📦 Move 🗑 Del
big5.py1019B06442026-03-03 11:49👁 View ✏️ Edit 📝 Rename 📦 Move 🗑 Del
big5hkscs.py1K06442026-03-03 11:49👁 View ✏️ Edit 📝 Rename 📦 Move 🗑 Del
bz2_codec.py2.2K06442026-03-03 11:49👁 View ✏️ Edit 📝 Rename 📦 Move 🗑 Del
charmap.py2K06442026-03-03 11:49👁 View ✏️ Edit 📝 Rename 📦 Move 🗑 Del
cp037.py12.8K06442026-03-03 11:49👁 View ✏️ Edit 📝 Rename 📦 Move 🗑 Del
cp1006.py13.3K06442026-03-03 11:49👁 View ✏️ Edit 📝 Rename 📦 Move 🗑 Del
cp1026.py12.8K06442026-03-03 11:49👁 View ✏️ Edit 📝 Rename 📦 Move 🗑 Del
cp1125.py33.8K06442026-03-03 11:49👁 View ✏️ Edit 📝 Rename 📦 Move 🗑 Del
cp1140.py12.8K06442026-03-03 11:49👁 View ✏️ Edit 📝 Rename 📦 Move 🗑 Del
cp1250.py13.4K06442026-03-03 11:49👁 View ✏️ Edit 📝 Rename 📦 Move 🗑 Del
cp1251.py13K06442026-03-03 11:49👁 View ✏️ Edit 📝 Rename 📦 Move 🗑 Del
cp1252.py13.2K06442026-03-03 11:49👁 View ✏️ Edit 📝 Rename 📦 Move 🗑 Del
cp1253.py12.8K06442026-03-03 11:49👁 View ✏️ Edit 📝 Rename 📦 Move 🗑 Del
cp1254.py13.2K06442026-03-03 11:49👁 View ✏️ Edit 📝 Rename 📦 Move 🗑 Del
cp1255.py12.2K06442026-03-03 11:49👁 View ✏️ Edit 📝 Rename 📦 Move 🗑 Del
cp1256.py12.5K06442026-03-03 11:49👁 View ✏️ Edit 📝 Rename 📦 Move 🗑 Del
cp1257.py13.1K06442026-03-03 11:49👁 View ✏️ Edit 📝 Rename 📦 Move 🗑 Del
cp1258.py13.1K06442026-03-03 11:49👁 View ✏️ Edit 📝 Rename 📦 Move 🗑 Del
cp273.py13.8K06442026-03-03 11:49👁 View ✏️ Edit 📝 Rename 📦 Move 🗑 Del
cp424.py11.8K06442026-03-03 11:49👁 View ✏️ Edit 📝 Rename 📦 Move 🗑 Del
cp437.py33.8K06442026-03-03 11:49👁 View ✏️ Edit 📝 Rename 📦 Move 🗑 Del
cp500.py12.8K06442026-03-03 11:49👁 View ✏️ Edit 📝 Rename 📦 Move 🗑 Del
cp720.py13.4K06442026-03-03 11:49👁 View ✏️ Edit 📝 Rename 📦 Move 🗑 Del
cp737.py33.9K06442026-03-03 11:49👁 View ✏️ Edit 📝 Rename 📦 Move 🗑 Del
cp775.py33.7K06442026-03-03 11:49👁 View ✏️ Edit 📝 Rename 📦 Move 🗑 Del
cp850.py33.3K06442026-03-03 11:49👁 View ✏️ Edit 📝 Rename 📦 Move 🗑 Del
cp852.py34.2K06442026-03-03 11:49👁 View ✏️ Edit 📝 Rename 📦 Move 🗑 Del
cp855.py33.1K06442026-03-03 11:49👁 View ✏️ Edit 📝 Rename 📦 Move 🗑 Del
cp856.py12.1K06442026-03-03 11:49👁 View ✏️ Edit 📝 Rename 📦 Move 🗑 Del
cp857.py33.1K06442026-03-03 11:49👁 View ✏️ Edit 📝 Rename 📦 Move 🗑 Del
cp858.py33.2K06442026-03-03 11:49👁 View ✏️ Edit 📝 Rename 📦 Move 🗑 Del
cp860.py33.9K06442026-03-03 11:49👁 View ✏️ Edit 📝 Rename 📦 Move 🗑 Del
cp861.py33.8K06442026-03-03 11:49👁 View ✏️ Edit 📝 Rename 📦 Move 🗑 Del
cp862.py32.6K06442026-03-03 11:49👁 View ✏️ Edit 📝 Rename 📦 Move 🗑 Del
cp863.py33.4K06442026-03-03 11:49👁 View ✏️ Edit 📝 Rename 📦 Move 🗑 Del
cp864.py32.9K06442026-03-03 11:49👁 View ✏️ Edit 📝 Rename 📦 Move 🗑 Del
cp865.py33.8K06442026-03-03 11:49👁 View ✏️ Edit 📝 Rename 📦 Move 🗑 Del
cp866.py33.6K06442026-03-03 11:49👁 View ✏️ Edit 📝 Rename 📦 Move 🗑 Del
cp869.py32.2K06442026-03-03 11:49👁 View ✏️ Edit 📝 Rename 📦 Move 🗑 Del
cp874.py12.3K06442026-03-03 11:49👁 View ✏️ Edit 📝 Rename 📦 Move 🗑 Del
cp875.py12.6K06442026-03-03 11:49👁 View ✏️ Edit 📝 Rename 📦 Move 🗑 Del
cp932.py1023B06442026-03-03 11:49👁 View ✏️ Edit 📝 Rename 📦 Move 🗑 Del
cp949.py1023B06442026-03-03 11:49👁 View ✏️ Edit 📝 Rename 📦 Move 🗑 Del
cp950.py1023B06442026-03-03 11:49👁 View ✏️ Edit 📝 Rename 📦 Move 🗑 Del
euc_jis_2004.py1K06442026-03-03 11:49👁 View ✏️ Edit 📝 Rename 📦 Move 🗑 Del
euc_jisx0213.py1K06442026-03-03 11:49👁 View ✏️ Edit 📝 Rename 📦 Move 🗑 Del
euc_jp.py1K06442026-03-03 11:49👁 View ✏️ Edit 📝 Rename 📦 Move 🗑 Del
euc_kr.py1K06442026-03-03 11:49👁 View ✏️ Edit 📝 Rename 📦 Move 🗑 Del
gb18030.py1K06442026-03-03 11:49👁 View ✏️ Edit 📝 Rename 📦 Move 🗑 Del
gb2312.py1K06442026-03-03 11:49👁 View ✏️ Edit 📝 Rename 📦 Move 🗑 Del
gbk.py1015B06442026-03-03 11:49👁 View ✏️ Edit 📝 Rename 📦 Move 🗑 Del
hex_codec.py1.5K06442026-03-03 11:49👁 View ✏️ Edit 📝 Rename 📦 Move 🗑 Del
hp_roman8.py13.2K06442026-03-03 11:49👁 View ✏️ Edit 📝 Rename 📦 Move 🗑 Del
hz.py1011B06442026-03-03 11:49👁 View ✏️ Edit 📝 Rename 📦 Move 🗑 Del
idna.py8.9K06442026-03-03 11:49👁 View ✏️ Edit 📝 Rename 📦 Move 🗑 Del
iso2022_jp.py1K06442026-03-03 11:49👁 View ✏️ Edit 📝 Rename 📦 Move 🗑 Del
iso2022_jp_1.py1K06442026-03-03 11:49👁 View ✏️ Edit 📝 Rename 📦 Move 🗑 Del
iso2022_jp_2.py1K06442026-03-03 11:49👁 View ✏️ Edit 📝 Rename 📦 Move 🗑 Del
iso2022_jp_2004.py1K06442026-03-03 11:49👁 View ✏️ Edit 📝 Rename 📦 Move 🗑 Del
iso2022_jp_3.py1K06442026-03-03 11:49👁 View ✏️ Edit 📝 Rename 📦 Move 🗑 Del
iso2022_jp_ext.py1K06442026-03-03 11:49👁 View ✏️ Edit 📝 Rename 📦 Move 🗑 Del
iso2022_kr.py1K06442026-03-03 11:49👁 View ✏️ Edit 📝 Rename 📦 Move 🗑 Del
iso8859_1.py12.9K06442026-03-03 11:49👁 View ✏️ Edit 📝 Rename 📦 Move 🗑 Del
iso8859_10.py13.3K06442026-03-03 11:49👁 View ✏️ Edit 📝 Rename 📦 Move 🗑 Del
iso8859_11.py12K06442026-03-03 11:49👁 View ✏️ Edit 📝 Rename 📦 Move 🗑 Del
iso8859_13.py13K06442026-03-03 11:49👁 View ✏️ Edit 📝 Rename 📦 Move 🗑 Del
iso8859_14.py13.3K06442026-03-03 11:49👁 View ✏️ Edit 📝 Rename 📦 Move 🗑 Del
iso8859_15.py12.9K06442026-03-03 11:49👁 View ✏️ Edit 📝 Rename 📦 Move 🗑 Del
iso8859_16.py13.2K06442026-03-03 11:49👁 View ✏️ Edit 📝 Rename 📦 Move 🗑 Del
iso8859_2.py13.1K06442026-03-03 11:49👁 View ✏️ Edit 📝 Rename 📦 Move 🗑 Del
iso8859_3.py12.8K06442026-03-03 11:49👁 View ✏️ Edit 📝 Rename 📦 Move 🗑 Del
iso8859_4.py13.1K06442026-03-03 11:49👁 View ✏️ Edit 📝 Rename 📦 Move 🗑 Del
iso8859_5.py12.7K06442026-03-03 11:49👁 View ✏️ Edit 📝 Rename 📦 Move 🗑 Del
iso8859_6.py10.6K06442026-03-03 11:49👁 View ✏️ Edit 📝 Rename 📦 Move 🗑 Del
iso8859_7.py12.5K06442026-03-03 11:49👁 View ✏️ Edit 📝 Rename 📦 Move 🗑 Del
iso8859_8.py10.8K06442026-03-03 11:49👁 View ✏️ Edit 📝 Rename 📦 Move 🗑 Del
iso8859_9.py12.8K06442026-03-03 11:49👁 View ✏️ Edit 📝 Rename 📦 Move 🗑 Del
johab.py1023B06442026-03-03 11:49👁 View ✏️ Edit 📝 Rename 📦 Move 🗑 Del
koi8_r.py13.5K06442026-03-03 11:49👁 View ✏️ Edit 📝 Rename 📦 Move 🗑 Del
koi8_t.py12.9K06442026-03-03 11:49👁 View ✏️ Edit 📝 Rename 📦 Move 🗑 Del
koi8_u.py13.4K06442026-03-03 11:49👁 View ✏️ Edit 📝 Rename 📦 Move 🗑 Del
kz1048.py13.4K06442026-03-03 11:49👁 View ✏️ Edit 📝 Rename 📦 Move 🗑 Del
latin_1.py1.2K06442026-03-03 11:49👁 View ✏️ Edit 📝 Rename 📦 Move 🗑 Del
mac_arabic.py35.6K06442026-03-03 11:49👁 View ✏️ Edit 📝 Rename 📦 Move 🗑 Del
mac_centeuro.py13.8K06442026-03-03 11:49👁 View ✏️ Edit 📝 Rename 📦 Move 🗑 Del
mac_croatian.py13.3K06442026-03-03 11:49👁 View ✏️ Edit 📝 Rename 📦 Move 🗑 Del
mac_cyrillic.py13.1K06442026-03-03 11:49👁 View ✏️ Edit 📝 Rename 📦 Move 🗑 Del
mac_farsi.py14.8K06442026-03-03 11:49👁 View ✏️ Edit 📝 Rename 📦 Move 🗑 Del
mac_greek.py13.4K06442026-03-03 11:49👁 View ✏️ Edit 📝 Rename 📦 Move 🗑 Del
mac_iceland.py13.2K06442026-03-03 11:49👁 View ✏️ Edit 📝 Rename 📦 Move 🗑 Del
mac_latin2.py13.8K06442026-03-03 11:49👁 View ✏️ Edit 📝 Rename 📦 Move 🗑 Del
mac_roman.py13.2K06442026-03-03 11:49👁 View ✏️ Edit 📝 Rename 📦 Move 🗑 Del
mac_romanian.py13.3K06442026-03-03 11:49👁 View ✏️ Edit 📝 Rename 📦 Move 🗑 Del
mac_turkish.py13.2K06442026-03-03 11:49👁 View ✏️ Edit 📝 Rename 📦 Move 🗑 Del
mbcs.py1.2K06442026-03-03 11:49👁 View ✏️ Edit 📝 Rename 📦 Move 🗑 Del
oem.py1019B06442026-03-03 11:49👁 View ✏️ Edit 📝 Rename 📦 Move 🗑 Del
palmos.py13.2K06442026-03-03 11:49👁 View ✏️ Edit 📝 Rename 📦 Move 🗑 Del
ptcp154.py13.7K06442026-03-03 11:49👁 View ✏️ Edit 📝 Rename 📦 Move 🗑 Del
punycode.py6.7K06442026-03-03 11:49👁 View ✏️ Edit 📝 Rename 📦 Move 🗑 Del
quopri_codec.py1.5K06442026-03-03 11:49👁 View ✏️ Edit 📝 Rename 📦 Move 🗑 Del
raw_unicode_escape.py1.2K06442026-03-03 11:49👁 View ✏️ Edit 📝 Rename 📦 Move 🗑 Del
rot_13.py2.4K07552026-03-03 11:49👁 View ✏️ Edit 📝 Rename 📦 Move 🗑 Del
shift_jis.py1K06442026-03-03 11:49👁 View ✏️ Edit 📝 Rename 📦 Move 🗑 Del
shift_jis_2004.py1K06442026-03-03 11:49👁 View ✏️ Edit 📝 Rename 📦 Move 🗑 Del
shift_jisx0213.py1K06442026-03-03 11:49👁 View ✏️ Edit 📝 Rename 📦 Move 🗑 Del
tis_620.py12K06442026-03-03 11:49👁 View ✏️ Edit 📝 Rename 📦 Move 🗑 Del
undefined.py1.3K06442026-03-03 11:49👁 View ✏️ Edit 📝 Rename 📦 Move 🗑 Del
unicode_escape.py1.3K06442026-03-03 11:49👁 View ✏️ Edit 📝 Rename 📦 Move 🗑 Del
utf_16.py5.1K06442026-03-03 11:49👁 View ✏️ Edit 📝 Rename 📦 Move 🗑 Del
utf_16_be.py1K06442026-03-03 11:49👁 View ✏️ Edit 📝 Rename 📦 Move 🗑 Del
utf_16_le.py1K06442026-03-03 11:49👁 View ✏️ Edit 📝 Rename 📦 Move 🗑 Del
utf_32.py5K06442026-03-03 11:49👁 View ✏️ Edit 📝 Rename 📦 Move 🗑 Del
utf_32_be.py930B06442026-03-03 11:49👁 View ✏️ Edit 📝 Rename 📦 Move 🗑 Del
utf_32_le.py930B06442026-03-03 11:49👁 View ✏️ Edit 📝 Rename 📦 Move 🗑 Del
utf_7.py946B06442026-03-03 11:49👁 View ✏️ Edit 📝 Rename 📦 Move 🗑 Del
utf_8.py1005B06442026-03-03 11:49👁 View ✏️ Edit 📝 Rename 📦 Move 🗑 Del
utf_8_sig.py4K06442026-03-03 11:49👁 View ✏️ Edit 📝 Rename 📦 Move 🗑 Del
uu_codec.py2.8K06442026-03-03 11:49👁 View ✏️ Edit 📝 Rename 📦 Move 🗑 Del
zlib_codec.py2.2K06442026-03-03 11:49👁 View ✏️ Edit 📝 Rename 📦 Move 🗑 Del