File: //usr/lib64/python3.8/encodings/__pycache__/__init__.cpython-38.pyc
U
    e5d�  �                   @   s�   d Z ddlZddlZddlmZ i ZdZdgZejZG dd� de	e
�Zd	d
� Zdd� 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 (mal@lemburg.com).
(c) Copyright CNRI, All Rights Reserved. NO WARRANTY.
�    N�   )�aliasesz--unknown--�*c                   @   s   e Zd ZdS )�CodecRegistryErrorN)�__name__�
__module__�__qualname__� r	   r	   �*/usr/lib64/python3.8/encodings/__init__.pyr   (   s   r   c                 C   sf   t | 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    
r   c           
   	   C   sv  t �| t�}|tk	r|S t| �}t�|�p:t�|�dd��}|d k	rN||g}n|g}|D ]B}|rXd|krjqXztd| tdd�}W n tk
r�   Y qXX  q�qXd }z
|j	}W n t
k
r�   d }Y nX |d kr�d t | <