File: //lib64/python3.6/encodings/__pycache__/__init__.cpython-36.opt-1.pyc
3
  \
  �               @   s�   d Z ddlZddlZddlmZ i ZdZdgZejZG dd� de	e
�Zd	d
� Zdd� 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 (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.6/encodings/__init__.pyr   (   s   r   c             C   sj   t | t�rt| d�} g }d}xB| D ]:}|j� s6|dkrX|rH|rH|jd� |j|� d}q"d}q"W dj|�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    
r   c       
      C   s�  t j| t�}|tk	r|S t| �}tj|�p:tj|jdd��}|d k	rN||g}n|g}xN|D ]B}| sZd|krnqZytd| tdd�}W n tk
r�   Y qZX P qZW d }y
|j	}W n t
k
r�   d }Y nX |d kr�d t | <