3 \ �@s�dZddlZddlZddlmZiZdZdgZejZGdd�de e �Z d d �Z d d �Z eje �ejd kr|dd�Zeje�dS)a3 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 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 ([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.6/encodings/__init__.pyr(srcCsjt|t�rt|d�}g}d}xB|D]:}|j�s6|dkrX|rH|rH|jd�|j|�d}q"d}q"Wdj|�S)a� 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. �asciiF�.�_T�)� isinstance�bytes�str�isalnum�append�join)�encoding�chars�punct�cr r r �normalize_encoding+s     rc Cs�tj|t�}|tk r|St|�}tj|�p:tj|jdd��}|dk rN||g}n|g}xN|D]B}| sZd|krnqZytd|tdd�}Wntk r�YqZXPqZWd}y |j }Wnt k r�d}YnX|dkr�dt|<dS|�}t |t j ��s:dt|�k�odkn�s$td|j|jf��t|d� �s�t|d � �s�|d dk �rbt|d � �s�|d dk �r�t|d � �s�t|�dk�r�|ddk �r�t|d� �s�t|�d k�r�|d dk �r�t|d � �r�td |j|jf��t|�dk�s|ddk�r0|ddt|�|jjdd �d f7}t j |�}|t|<y |j�}Wnt k �rdYn$Xx |D]} | tk�rl|t| <�qlW|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_functionGsf          ,,(    r;Zwin32c CsFy,ddl}||jd�kr*ddl}|jj�SWntk r@YnXdS)NrF)� _bootlocale�getpreferredencodingZencodings.mbcs�mbcsr*r))rr<Z encodingsr r r � _alias_mbcs�sr?)�__doc__r,�sysrrr"r$r(r%� LookupError� SystemErrorrrr;�register�platformr?r r r r �s U