3
eb                 @   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
mZ ej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eej dddZeje dS )   )encodedecodealabelulabel	IDNAError    N)Any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j||sdS t|t|fS )Nr   zUnsupported error handling "{}"    r   )r   r   )r   formatr   len)selfr   r    r   N/var/www/html/StaffProfile/staffvenv/lib/python3.6/site-packages/idna/codec.pyr   
   s
    zCodec.encodec             C   s.   |dkrt dj||sdS t|t|fS )Nr   zUnsupported error handling "{}" r   )r   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j||sdS tj|}d}|rV|d sDd}|d	= n|sV|d
= |rVd}g }d}x2|D ]*}|jt| |r|d7 }|t|7 }qdW dj|| }	|t|7 }|	|fS )Nr   zUnsupported error handling "{}"r   r   r      .)r   r   r    r    )r   r   _unicode_dots_resplitappendr   r   join)
r   r   r   r   labelstrailing_dotresultsizelabelZresult_bytesr   r   r   _buffer_encode   s0    

z!IncrementalEncoder._buffer_encodeN)	r   r   r   r   boolr	   r   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j||sdS t|ts2t|d}tj|}d}|rj|d	 sXd}|d
= n|sj|d= |rjd}g }d}x2|D ]*}|jt| |r|d7 }|t|7 }qxW dj	|| }	|t|7 }|	|fS )Nr   zUnsupported error handling "{}"r   r   asciir   .)r   r   r    r    r    )
r   r   
isinstancer   r!   r"   r#   r   r   r$   )
r   r   r   r   r%   r&   r'   r(   r)   Z
result_strr   r   r   _buffer_decode>   s4    



z!IncrementalDecoder._buffer_decodeN)	r   r   r   r   r   r+   r	   r   r0   r   r   r   r   r,   =   s   r,   c               @   s   e Zd ZdS )StreamWriterN)r   r   r   r   r   r   r   r1   a   s   r1   c               @   s   e Zd ZdS )StreamReaderN)r   r   r   r   r   r   r   r2   e   s   r2   )namer   c          	   C   s,   | dkrd S t j| t jt jttttdS )NZidna2008)r3   r   r   incrementalencoderincrementaldecoderstreamwriterstreamreader)	codecs	CodecInfor   r   r   r   r,   r1   r2   )r3   r   r   r   search_functioni   s    r:   )corer   r   r   r   r   r8   retypingr   r	   r
   compiler!   r   BufferedIncrementalEncoderr   BufferedIncrementalDecoderr,   r1   r2   r   r9   r:   registerr   r   r   r   <module>   s   
!$