o ƚRe2@s0ddlmZddlZddlZddlZddlmZmZddlm Z dZ dZ e dZ Gd d d eZGd d d eZGd ddeZGdddeZddZddZddZddZddZddZd7ddZd d!Zd"d#Zd$d%Zd&d'Zd7d(d)Zd*d+Zd,d-Z d.d/Z!d8d1d2Z"d9d3d4Z#d:d5d6Z$dS);)idnadataN)UnionOptional)intranges_contain sxn--u [.。.。]c@eZdZdZdS) IDNAErrorz7 Base exception for all IDNA-encoding related problems N__name__ __module__ __qualname____doc__rr/builddir/build/BUILDROOT/alt-python310-pip-21.3.1-3.el8.x86_64/opt/alt/python310/lib/python3.10/site-packages/pip/_vendor/idna/core.pyr r c@r) IDNABidiErrorz= Exception when bidirectional requirements are not satisfied Nr rrrrrrrc@r)InvalidCodepointz> Exception when a disallowed or unallocated codepoint is used Nr rrrrrrrc@r)InvalidCodepointContextzE Exception when the codepoint is not valid in the context it is used Nr rrrrrrrcCs0tt|}|dkrtt|std|S)Nrz Unknown character in unicodedata) unicodedata combiningchrname ValueError)cpvrrr_combining_class s rcCstt|tj|S)N)rordrscripts)rscriptrrr _is_script(sr cCs |dS)Npunycode)encodesrrr _punycode, r%cCs d|S)NzU+{:04X})formatr#rrr_unot0r&r(cCst|dkrdSdS)N?FTlenlabelrrrvalid_label_length5s r.cCst||rdndkr dSdS)NFTr*)r- trailing_dotrrrvalid_string_length<sr2Fc CsPd}t|dD]\}}t|}|dkrtdt|||dvr$d}q|s+|s+dSt|d}|dvr9d}n|d kr@d}n td t|d}d}t|dD]M\}}t|}|r|d vrhtd ||d vrod}n|dkrud}|dvr|s~|}qR||krtdqR|dvrtd||dvrd}qR|dkrd}qR|stddS)NFrz1Unknown directionality in label {} at position {})RALANTr)r4r5Lz=First codepoint in label {} must be directionality L, R or AL) r4r5r6ENESCSETONBNNSMzGInvalid direction for codepoint at position {} in a right-to-left label)r4r5r8r6r>)r6r8z2Can not mix numeral types in a right-to-left label)r7r8r9r:r;r<r=r>zGInvalid direction for codepoint at position {} in a left-to-right label)r7r8z0Label ends with illegal codepoint directionality) enumerater bidirectionalrr'repr) r- check_ltr bidi_labelidxr directionrtl valid_ending number_typerrr check_bidiCsV  rIcCs"t|dddkrtddS)NrMz0Label begins with an illegal combining characterT)rcategoryr r,rrrcheck_initial_combinersrLcCs<|dddkr td|ddks|ddkrtdd S) Nz--z4Label has disallowed hyphens in 3rd and 4th positionr-z)Label must not start or end with a hyphenT)r r,rrrcheck_hyphen_oks rQcCstd||kr tddS)NNFCz%Label must be in Normalization Form C)r normalizer r,rrr check_nfcsrTcCs,t||}|dkr||dkrtt||dtkrdSd}t|dddD]!}tjt||}|tdkr9q&|tdtd fvrGd}nq&|sLdSd}t|dt|D]"}tjt||}|tdkrjqW|td td fvryd}|SqW|S|d kr|dkrtt||dtkrdSdSdS) Ni rrTFrPTr7Dr4i )rr_virama_combining_classranger joining_typesgetr+)r-poscp_valueoki joining_typerrrvalid_contextjsB   r`cCst||}|dkr3d|krt|dkr1ndSt||ddkr1t||ddkr1dSdS|dkrP|t|dkrNt|dkrNt||ddSdS|d ksX|d krg|dkret||dd SdS|d kr|D]}|d krtqmt|dst|dst|drdSqmdSd|krdkrnn|D]}dt|krdkrdSqqdSd|krdkrndS|D]}dt|krdkrdSqqdSdS)NrrlTFiuGreekiiHebrewi0u・HiraganaKatakanaHani`iiii)rr+r )r-r[ exceptionr\rrrrvalid_contextosJ (ric Cs<t|ttfr |d}t|dkrtdt|t|t|t |D]q\}}t |}t |t j dr7q&t |t j drlzt||sTtdt||dt|Wq&tyktdt||dt|wt |t j d rt||std t||dt|q&td t||dt|t|dS) Nzutf-8rz Empty LabelPVALIDCONTEXTJz*Joiner {} not allowed at position {} in {}rz         rc Cst|ttfr |d}|rt|||}d}g}|r |d}nt|}|r,|dgkr0td|ddkr;|d=d}|D]}t|}|rK| |q=td|rV| d d |}t ||sdtd |S) NrtF.r3 Empty domainrPT Empty label.zDomain too long) rnrorprqrsplit_unicode_dots_rer r{appendjoinr2) r$strictuts46rrr1resultlabelsr-rrrr"as2         r"cCst|ttfr |d}|rt||d}d}g}|s t|}n|d}|r,|dgkr0td|ds9|d=d}|D]}t|}|rI| |q;td|rT| dd |S) NrtFrr3rrPTr) rnrorprqrrrr rurr)r$rrrr1rrr-rrrrqs,       rq)F)TF)FFFF)FFF)%r3rrrretypingrr intrangesrrWrxcompiler UnicodeErrorr rrrrr r%r(r.r2rIrLrQrTr`rirsr{rurr"rqrrrrs>    <  ,+   !