U f^ @ s d dl Z d dlZd dlmZmZmZ ddlmZmZm Z m Z mZ edZ G dd de jZG dd d e jZG d d de jZG dd d ee jZG dd dee jZeee j dddZe e dS ) N)AnyOptionalTuple ) IDNAErroralabeldecodeencodeulabelu [.。.。]c @ sD e Zd Zdeeeeef dddZd eeeeef dddZdS ) Codecstrict)dataerrorsreturnc C s. |dkrt d||sdS t|t|fS )Nr Unsupported error handling "{}" r )r formatr lenselfr r r ;/opt/alt/python38/lib/python3.8/site-packages/idna/codec.pyr s zCodec.encodec C s. |dkrt d||sdS t|t|fS )Nr r r )r r r r r r r r r s zCodec.decodeN)r )r ) __name__ __module____qualname__strr bytesintr r r r r r r s r c @ s( e Zd Zeeeeeef dddZdS )IncrementalEncoderr r finalr c 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_resplitappendr r join) r r r r# labelstrailing_dotresultsizelabelZresult_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 Zd Zeeeeeef dddZdS )IncrementalDecoderr" c C s |dkrt d||sdS t|ts2t|d}t|}d}|rj|d sXd}|d= n|sj|d= |rjd}g }d}|D ]*}|t| |r|d 7 }|t|7 }qvd || } |t|7 }| |fS ) Nr r r asciir r$ .r r ) r r isinstancer r&