B
    @
d.                 @   s   d dl mZmZmZmZmZ ddlZddlZddlm	Z	m
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ejdddZdS )   )encodedecodealabelulabel	IDNAError    N)TupleOptionalu   [.。．｡]c               @   sD   e Zd Zdeeeeef dddZd	eeeeef dddZdS )
Codecstrict)dataerrorsreturnc             C   s.   |dkrt d||sdS t|t|fS )Nr   zUnsupported error handling "{}")    r   )r   formatr   len)selfr   r    r   ,/tmp/pip-install-587nrtaf/idna/idna/codec.pyr   
   s
    zCodec.encodec             C   s.   |dkrt d||sdS t|t|fS )Nr   zUnsupported error handling "{}") r   )r   r   r   r   )r   r   r   r   r   r   r      s
    zCodec.decodeN)r   )r   )	__name__
__module____qualname__strr   bytesintr   r   r   r   r   r   r
      s   	r
   c               @   s(   e Zd Zeeeeeef dddZdS )IncrementalEncoder)r   r   finalr   c       
      C   s   |dkrt d||sdS t|}d}|rV|d sDd}|d= n|sV|d= |rVd}g }d}x2|D ]*}|t| |r|d7 }|t|7 }qdW d|| }	|t|7 }|	|fS )	Nr   zUnsupported error handling "{}")r   r   r   .r   r   )r   r   _unicode_dots_resplitappendr   r   join)
r   r   r   r   labelstrailing_dotresultsizelabel
result_strr   r   r   _buffer_encode   s0    

z!IncrementalEncoder._buffer_encodeN)r   r   r   r   boolr   r   r*   r   r   r   r   r      s   r   c               @   s(   e Zd Zeeeeeef dddZdS )IncrementalDecoder)r   r   r   r   c       
      C   s   |dkrt d||sdS t|}d}|rV|d sDd}|d= n|sV|d= |rVd}g }d}x2|D ]*}|t| |r|d7 }|t|7 }qdW d|| }	|t|7 }|	|fS )	Nr   zUnsupported error handling "{}")r   r   r   r   r   r   r   )r   r   r    r!   r"   r   r   r#   )
r   r   r   r   r$   r%   r&   r'   r(   r)   r   r   r   _buffer_decode>   s0    

z!IncrementalDecoder._buffer_decodeN)r   r   r   r   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.   ^   s   r.   c               @   s   e Zd ZdS )StreamReaderN)r   r   r   r   r   r   r   r/   b   s   r/   )r   c            	   C   s    t jdt jt jttttdS )Nidna)namer   r   incrementalencoderincrementaldecoderstreamwriterstreamreader)	codecs	CodecInfor
   r   r   r   r,   r.   r/   r   r   r   r   getregentryf   s    r8   )corer   r   r   r   r   r6   retypingr   r	   compiler    r
   BufferedIncrementalEncoderr   BufferedIncrementalDecoderr,   r.   r/   r7   r8   r   r   r   r   <module>   s   
!!