a XC?h��@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 �7/opt/alt/python39/lib64/python3.9/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 Cspt�|t�}|tur|St|�}t�|�p:t�|�dd��}|durN||g}n|g}|D]@}|rXd|vrjqXztd|tdd�}Wnty�YqX0q�qXd}z |j }Wnt y�d}Yn0|dur�dt|<dS|�}t |t j ��s$dt|�k�rdk�sntd|j|jf��t|d��r�t|d ��r�|d du�rRt|d ��r�|d du�rnt|d ��r�t|�dk�r�|ddu�r�t|d��r�t|�d k�r�|d du�r�t|d ��s�td |j|jf��t|�dk�s�|ddu�r|ddt|�|j�dd �d f7}t j |�}|t|<z |��}Wnt �yLYn 0|D]} | tv�rR|t| <�qR|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;Zwin32cCsLz4ddl}d|��}||kr2ddl}|j��WSWntyFYn0dS)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