o
    Eeb                     @   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   K/var/www/bmteknikk.ddns.net/venv/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labelresult_bytesr   r   r   _buffer_encode   s0   
z!IncrementalEncoder._buffer_encodeN)	r   r   r   r    boolr	   r!   r"   r1   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/   
result_strr   r   r   _buffer_decode>   s4   


z!IncrementalDecoder._buffer_decodeN)	r   r   r   r   r    r2   r	   r"   r9   r   r   r   r   r4   =   r3   r4   c                   @      e Zd ZdS )StreamWriterNr   r   r   r   r   r   r   r;   a       r;   c                   @   r:   )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 )Nidna2008)r?   r   r   incrementalencoderincrementaldecoderstreamwriterstreamreader)	codecs	CodecInfor   r   r   r#   r4   r;   r>   )r?   r   r   r   search_functioni   s   rG   )corer   r   r   r   r   rE   retypingr   r	   r
   compiler'   r   BufferedIncrementalEncoderr#   BufferedIncrementalDecoderr4   r;   r>   r    rF   rG   registerr   r   r   r   <module>   s    
!$