U
    rċX                     @   s   d dl mZmZmZmZmZ ddlZddlZedZ	G dd dej
Z
G dd dejZG d	d
 d
ejZG dd de
ejZG dd de
ejZdd ZdS )   )encodedecodealabelulabel	IDNAError    Nu   [.。．｡]c                   @   s    e Zd ZdddZdddZdS )	Codecstrictc                 C   s.   |dkrt d||sdS t|t|fS Nr	    Unsupported error handling "{0}" r   )r   formatr   lenselfdataerrors r   ,/usr/lib/python3/dist-packages/idna/codec.pyr   	   s
    zCodec.encodec                 C   s.   |dkrt d||sdS t|t|fS r
   )r   r   r   r   r   r   r   r   r      s
    zCodec.decodeN)r	   )r	   )__name__
__module____qualname__r   r   r   r   r   r   r      s   

r   c                   @   s   e Zd Zdd ZdS )IncrementalEncoderc           	      C   s   |dkrt d||sdS t|}d}|rV|d sDd}|d= n|sV|d= |rVd}g }d}|D ]*}|t| |r|d7 }|t|7 }qbd|| }|t|7 }||fS )	Nr	   r   r   r   .r   r   )r   r   _unicode_dots_resplitappendr   r   join	r   r   r   finallabelsZtrailing_dotresultsizeZlabelr   r   r   _buffer_encode   s0    
z!IncrementalEncoder._buffer_encodeN)r   r   r   r%   r   r   r   r   r      s   r   c                   @   s   e Zd Zdd ZdS )IncrementalDecoderc           	      C   s   |dkrt d||sdS t|tr4t|}nt|}t|d |d}d}|r~|d sld}|d= n|s~|d= |r~d}g }d}|D ]*}|t| |r|d	7 }|t	|7 }qd
|| }|t	|7 }||fS )
Nr	   r   r   asciir   r   r   r   r   )r   r   
isinstanceZunicoder   r   strr   r   r   r   r    r   r   r   _buffer_decode?   s8    


z!IncrementalDecoder._buffer_decodeN)r   r   r   r*   r   r   r   r   r&   >   s   r&   c                   @   s   e Zd ZdS )StreamWriterNr   r   r   r   r   r   r   r+   g   s   r+   c                   @   s   e Zd ZdS )StreamReaderNr,   r   r   r   r   r-   j   s   r-   c                	   C   s    t jdt jt jttttdS )NZidna)namer   r   incrementalencoderincrementaldecoderstreamwriterstreamreader)	codecs	CodecInfor   r   r   r   r&   r+   r-   r   r   r   r   getregentrym   s    r5   )Zcorer   r   r   r   r   r3   recompiler   r   BufferedIncrementalEncoderr   BufferedIncrementalDecoderr&   r+   r-   r5   r   r   r   r   <module>   s   
!)