o Ya. @sddlmZmZmZmZmZddlZddlZddlm Z m Z e dZ Gdddej Z Gdd d ejZGd d d ejZGd d d e ejZGddde ejZdejfddZdS))encodedecodealabelulabel IDNAErrorN)TupleOptionalu [.。.。]c @sLeZdZd dededeeeffddZd dededeeeffddZd S) CodecstrictdataerrorsreturncC.|dkr td||sdSt|t|fS)Nr Unsupported error handling "{}")r)rformatrlenselfr r r,/usr/lib/python3/dist-packages/idna/codec.pyr z Codec.encodecCr)Nr rr)rrrrrrrrrrz Codec.decodeN)r ) __name__ __module__ __qualname__strrbytesintrrrrrrr s $ r c @.eZdZdedededeeeffddZdS)IncrementalEncoderr r finalrc C|dkr td||sdSt|}d}|r+|ds"d}|d=n |s+|d=|r+d}g}d}|D]}|t||r@|d7}|t|7}q1d||} |t|7}| |fS Nr rrr.rr)rr_unicode_dots_resplitappendrrjoin rr r r#labels trailing_dotresultsizelabel result_strrrr_buffer_encodes0  z!IncrementalEncoder._buffer_encodeN)rrrrboolrr r3rrrrr"&r"c @r!)IncrementalDecoderr r r#rc Cr$r%)rrr(r)r*rrr+r,rrr_buffer_decode>s0  z!IncrementalDecoder._buffer_decodeN)rrrrr4rr r7rrrrr6=r5r6c@ eZdZdS) StreamWriterNrrrrrrrr9^r9c@r8) StreamReaderNr:rrrrr<br;r<rc Cs tjdtjtjttttdS)Nidna)namerrincrementalencoderincrementaldecoder streamwriter streamreader) codecs CodecInfor rrr"r6r9r<rrrr getregentryfsrE)corerrrrrrCretypingrr compiler(r BufferedIncrementalEncoderr"BufferedIncrementalDecoderr6r9r<rDrErrrrs !!