XylotrechusZ
U
��.e� � @ s� d dl mZmZmZmZmZ ddlZddlZe�d�Z G dd� dej
�Z
G dd� dej�ZG d d
� d
ej
�ZG dd� de
ej�ZG d
d� de
ej�Zdd� ZdS )� )�encode�decode�alabel�ulabel� IDNAError� Nu [.。.。]c @ s e Zd Zddd�Zddd�ZdS ) �Codec�strictc C s. |dkrt d�|���|sdS t|�t|�fS �Nr � Unsupported error handling "{0}"�� r )r �formatr �len��self�data�errors� r �:/usr/lib/python3.8/site-packages/pip/_vendor/idna/codec.pyr s
zCodec.encodec C s. |dkrt d�|���|sdS t|�t|�fS r
)r r r r r r r r r s
zCodec.decodeN)r )r )�__name__�
__module__�__qualname__r r r r r r r s
r c @ s e Zd Zdd� ZdS )�IncrementalEncoderc C s� |dkrt d�|���|sdS t�|�}d}|rV|d sDd}|d= n|sV|d= |rVd}g }d}|D ]*}|�t|�� |r�|d7 }|t|�7 }qbd�|�| }|t|�7 }||fS ) Nr r r r
����.r r )r r �_unicode_dots_re�split�appendr r �join� r r r �final�labelsZtrailing_dot�result�sizeZlabelr r r �_buffer_encode s0
z!IncrementalEncoder._buffer_encodeN)r r r r% r r r r r s r c @ s e Zd Zdd� ZdS )�IncrementalDecoderc C s� |dkrt d�|���|sdS t|t�r4t�|�}nt|�}t|d� |�d�}d}|r~|d sld}|d= n|s~|d= |r~d}g }d}|D ]*}|�t|�� |r�|d 7 }|t |�7 }q�d�
|�| }|t |�7 }||fS )
Nr r r �asciir r
r r r )r r �
isinstanceZunicoder r �strr r r r r r r r �_buffer_decode? s8
z!IncrementalDecoder._buffer_decodeN)r r r r* r r r r r&