3 2a#@sddlZddlZddlZddlmZejdZdZdZddZ dd Z d d Z Gd d d ej Z Gdddej ZGdddejZGddde ejZGddde ejZddZdS)N) ucd_3_2_0u [.。.。]sxn--zxn--cCsg}x(|D] }tj|rq |jtj|q Wdj|}tjd|}xr|D]j}tj|stj|stj |stj |stj |stj |stj |stj|stj|rJtd|qJWdd|D}xH|D]@}|rtdd|Drtd|d  s|d  rtd qW|S) NZNFKCzInvalid character %rcSsg|]}tj|qS) stringprepZ in_table_d1).0xrr)/opt/alt/python36/lib64/python3.6/idna.py )sznameprep..css|]}tj|VqdS)N)rZ in_table_d2)rrrrr 2sznameprep..zViolation of BIDI requirement 2rzViolation of BIDI requirement 3)rZ in_table_b1appendZ map_table_b2join unicodedata normalizeZ in_table_c12Z in_table_c22Z in_table_c3Z in_table_c4Z in_table_c5Z in_table_c6Z in_table_c7Z in_table_c8Z in_table_c9 UnicodeErrorany)labelZnewlabelcZRandALrrrnamepreps4                rcCsy|jd}Wntk r"Yn*Xdt|ko:dknrD|Stdt|}y|jd}Wntk rvYn*Xdt|kodknr|Std|jtrtd|jd}t|}dt|kodknr|StddS)Nasciir@zlabel empty or too longzLabel starts with ACE prefixpunycode)encoderlenr startswith sace_prefix ace_prefix)rrrrToASCII>s,  rcCst|trd}n,y|jd}d}Wntk r:d}YnX|stt|}y|jd}Wntk rrtdYnX|jtst|dS|ttd}|j d}t |}t|dj t|dkrtd|||S)NTrFzInvalid character in IDN labelrzIDNA does not round-trip) isinstancebytesrrrrrstrrdecoderlower)rZ pure_asciiZlabel1resultZlabel2rrr ToUnicodeis*       r%c@s eZdZdddZdddZdS) Codecstrictc Cs|dkrtd||sd Sy|jd}Wntk r>YnjX|jd}x8|dd D](}dt|kordknsXtd qXWt|d dkrtd |t|fSt}tj|}|r|d rd}|d=nd}x(|D] }|r|jd|jt|qWt ||t|fS)Nr'zunsupported error handling rr.r rzlabel empty or too longzlabel too long)r(rr r r r ) rrUnicodeEncodeErrorsplitr bytearraydotsextendrr )selfinputerrorsr$labelsr trailing_dotrrrrs4       z Codec.encodec Cs|dkrtd||sd St|ts.t|}t|kr^y|jdt|fStk r\YnX|jd}|rt|d dkrd}|d =nd}g}x|D]}|jt |qWdj ||t|fS) Nr'zUnsupported error handling rrrr)r .)rrr r ) rrr rr"rUnicodeDecodeErrorr+r r%r)r/r0r1r2r3r$rrrrr"s(    z Codec.decodeN)r')r')__name__ __module__ __qualname__rr"rrrrr&s %r&c@seZdZddZdS)IncrementalEncoderc Cs|dkrtd||sdStj|}d}|rT|dsBd}|d =n|sT|d =|rTd}t}d}x<|D]4}|r~|jd|d7}|jt||t|7}qdW||7}|t|7}t||fS) Nr'zunsupported error handling r(rr r))r(rr r r )rr-r+r,r.rrr ) r/r0r1finalr2r3r$sizerrrr_buffer_encodes2     z!IncrementalEncoder._buffer_encodeN)r6r7r8r<rrrrr9sr9c@seZdZddZdS)IncrementalDecoderc Cs|dkrtd||sdSt|tr2tj|}nt|d}|jd}d}|rt|d sbd}|d =n|st|d =|rtd}g}d}x2|D]*}|jt||r|d7}|t|7}qWdj||}|t|7}||fS) Nr'zUnsupported error handling rrrr4r )rrr r r ) rrr!r-r+r r%rr) r/r0r1r:r2r3r$r;rrrr_buffer_decodes6       z!IncrementalDecoder._buffer_decodeN)r6r7r8r>rrrrr=sr=c@s eZdZdS) StreamWriterN)r6r7r8rrrrr?$sr?c@s eZdZdS) StreamReaderN)r6r7r8rrrrr@'sr@c Cs tjdtjtjttttdS)NZidna)namerr"incrementalencoderincrementaldecoder streamwriter streamreader) codecs CodecInfor&rr"r9r=r?r@rrrr getregentry,srH)rrerFrrcompiler-rrrrr%r&BufferedIncrementalEncoderr9BufferedIncrementalDecoderr=r?r@rHrrrrs  0+)H#'