o
    u, c.                     @   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dejfddZdS )   )encodedecodealabelulabel	IDNAError    N)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   .usr/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                
   @   .   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      |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#   labelsZtrailing_dotresultsizelabelZ
result_strr   r   r   _buffer_encode   s0   
z!IncrementalEncoder._buffer_encodeN)r   r   r   r   boolr   r    r1   r   r   r   r   r"          &r"   c                
   @   r!   )IncrementalDecoderr   r   r#   r   c           
      C   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   r2   r   r    r5   r   r   r   r   r4   =   r3   r4   c                   @      e Zd ZdS )StreamWriterNr   r   r   r   r   r   r   r7   ^       r7   c                   @   r6   )StreamReaderNr8   r   r   r   r   r:   b   r9   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"   r4   r7   r:   r   r   r   r   getregentryf   s   rC   )corer   r   r   r   r   rA   retypingr   r	   compiler(   r
   BufferedIncrementalEncoderr"   BufferedIncrementalDecoderr4   r7   r:   rB   rC   r   r   r   r   <module>   s    
!!