U e5d��@s�dZddlZddlZddlmZiZdZdgZejZGdd�de e �Z d d �Z d d �Z e�e �ejd kr|dd�Ze�e�dS)a2 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 ([email protected]). (c) Copyright CNRI, All Rights Reserved. NO WARRANTY. �N�)�aliasesz --unknown--�*c@s eZdZdS)�CodecRegistryErrorN)�__name__� __module__� __qualname__�r r �*/usr/lib64/python3.8/encodings/__init__.pyr(srcCsft|t�rt|d�}g}d}|D]:}|��s4|dkrV|rF|rF|�d�|�|�d}q d}q d�|�S)ae 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. �asciiF�.�_T�)� isinstance�bytes�str�isalnum�append�join)�encoding�chars�punct�cr r r �normalize_encoding+s    rc Csvt�|t�}|tk r|St|�}t�|�p:t�|�dd��}|dk rN||g}n|g}|D]B}|rXd|krjqXztd|tdd�}Wntk r�YqXXq�qXd}z |j }Wnt k r�d}YnX|dkr�dt|<dS|�}t |t j ��s(dt|�k�rdk�sntd|j|jf��t|d��r�t|d ��r�|d dk �rVt|d ��r�|d dk �rrt|d ��r�t|�dk�r�|ddk �r�t|d��r�t|�d k�r�|d dk �r�t|d ��s�td |j|jf��t|�dk�s�|ddk�r|ddt|�|j�dd �d f7}t j |�}|t|<z |��}Wnt k �rRYn X|D]} | tk�rX|t| <�qX|S)Nr r z encodings.r)�fromlist�level��z#module "%s" (%s) failed to registerr���z'incompatible codecs in module "%s" (%s)�)N)�_cache�get�_unknownr�_aliases�replace� __import__� _import_tail� ImportError� getregentry�AttributeErrorr�codecs� CodecInfo�lenrr�__file__�callable�split� getaliases) r�entry� norm_encoding�aliased_encoding�modnames�modname�modr*� codecaliases�aliasr r r �search_functionFs�   ��  �    � � � � � � � � � � � �(    r;Zwin32cCsNz4ddl}d|��}||kr2ddl}|j��WSWntk rHYnXdS)Nrzcp%s)�_winapiZGetACPZencodings.mbcs�mbcsr*r))rr<Zansi_code_pageZ encodingsr r r � _alias_mbcs�s r>)�__doc__r,�sysrrr"r$r(r%� LookupError� SystemErrorrrr;�register�platformr>r r r r �s U