o
    Zhb                     @   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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edeej fddZee dS )   )encodedecodealabelulabel	IDNAError    N)AnyTupleOptionalu   [.。．｡]c                	   @   sL   e Zd Zd
dededeeef fddZd
dededeeef fddZd	S )Codecstrictdataerrorsreturnc                 C   .   |dkrt d||sdS t|t|fS )Nr   Unsupported error handling "{}"    r   )r   formatr   lenselfr   r    r   A/var/www/html/lang_env/lib/python3.10/site-packages/idna/codec.pyr   
   
   zCodec.encodec                 C   r   )Nr   r    r   )r   r   r   r   r   r   r   r   r      r   zCodec.decodeN)r   )	__name__
__module____qualname__strr	   bytesintr   r   r   r   r   r   r      s     $	r   c                
   @   s.   e Zd Zdedededeeef fddZdS )IncrementalEncoderr   r   finalr   c           
      C   s   |dkrt d||sdS t|}d}|r+|d s"d}|d= n	|s+|d= |r+d}g }d}|D ]}|t| |r@|d7 }|t|7 }q1d|| }	|t|7 }|	|fS )	Nr   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"   r0   r   r   r   r   r#          &r#   c                
   @   s.   e Zd Zdedededeeef fddZdS )IncrementalDecoderr   r   r$   r   c           
      C   s   |dkrt d||sdS t|tst|d}t|}d}|r5|d s,d}|d= n	|s5|d= |r5d}g }d}|D ]}|t| |rJ|d	7 }|t|7 }q;d	|| }	|t|7 }|	|fS )
Nr   r   r   asciir   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    r1   r	   r"   r7   r   r   r   r   r3   =   r2   r3   c                   @      e Zd ZdS )StreamWriterNr   r   r   r   r   r   r   r9   a       r9   c                   @   r8   )StreamReaderNr:   r   r   r   r   r<   e   r;   r<   namer   c              	   C   s,   | dkrd S t j| t jt jttttdS )NZidna2008)r=   r   r   incrementalencoderincrementaldecoderstreamwriterstreamreader)	codecs	CodecInfor   r   r   r#   r3   r9   r<   )r=   r   r   r   search_functioni   s   rD   )corer   r   r   r   r   rB   retypingr   r	   r
   compiler'   r   BufferedIncrementalEncoderr#   BufferedIncrementalDecoderr3   r9   r<   r    rC   rD   registerr   r   r   r   <module>   s    
!$