Viewing File: /opt/alt/python35/lib/python3.5/site-packages/idna/__pycache__/core.cpython-35.pyc



'X~,@sddlmZddlZddlZddlZddlZddlmZdZdZ	ej
dZejddkre
ZeZGd	d
d
eZGdddeZGd
ddeZGdddeZddZddZddZddZddZddZdddZd d!Zd"d#Zd$d%Zd&d'Z dd(d)Z!d*d+Z"d,d-Z#d.d/Z$d0dd1d2Z%ddddd3d4Z&dddd5d6Z'dS)7)idnadataN)intranges_contain	sxn--u[.。.。]c@seZdZdZdS)	IDNAErrorz7 Base exception for all IDNA-encoding related problems N)__name__
__module____qualname____doc__rr/core.pyrsrc@seZdZdZdS)
IDNABidiErrorz= Exception when bidirectional requirements are not satisfied N)rr	r
rrrrr
rsrc@seZdZdZdS)InvalidCodepointz> Exception when a disallowed or unallocated codepoint is used N)rr	r
rrrrr
rsrc@seZdZdZdS)InvalidCodepointContextzE Exception when the codepoint is not valid in the context it is used N)rr	r
rrrrr
rsrcCstjt|S)N)unicodedataZ	combiningunichr)cprrr
_combining_class$srcCstt|tj|S)N)rordrscripts)rZscriptrrr

_is_script'srcCs
|jdS)Npunycode)encode)srrr
	_punycode*srcCs
dj|S)Nz	U+{0:04X})format)rrrr
_unot-srcCst|dkrdSdS)N?FT)len)labelrrr
valid_label_length1sr!cCs&t||rdndkr"dSdS)NFT)r)r trailing_dotrrr
valid_string_length8sr%Fc	Csd}xit|dD]X\}}tj|}|dkr[tdjt|||dkrd}PqW|r|rdStj|d	}|dkrd}n0|d
krd}ntdjt|d}d}xt|dD]\}}tj|}|r|dkr:tdj||dkrOd}n|dkrad}|dkr|s||}q||krtdq|dkrtdj||dkrd}q|dkrd}qW|stddS)NFrz3Unknown directionality in label {0} at position {1}RALANTrLz>First codepoint in label {0} must be directionality L, R or ALENESCSETONBNNSMzHInvalid direction for codepoint at position {0} in a right-to-left labelz2Can not mix numeral types in a right-to-left labelzHInvalid direction for codepoint at position {0} in a left-to-right labelz0Label ends with illegal codepoint directionality)r'r(r))r'r()
r'r(r)r+r,r-r.r/r0r1)r'r(r+r))r)r+)r*r+r,r-r.r/r0r1)r*r+)	enumeraterZ
bidirectionalrrrepr)	r Z	check_ltrZ
bidi_labelidxr	directionZrtlZvalid_endingZnumber_typerrr

check_bidi?sR					
r6cCs-tj|dddkr)tddS)NrMz0Label begins with an illegal combining characterT)rcategoryr)r rrr
check_initial_combiner|sr9cCsR|dddkr"td|ddksB|d
dkrNtdd	S)Nz--z4Label has disallowed hyphens in 3rd and 4th positionr-rz)Label must not start or end with a hyphenT)r)r rrr
check_hyphen_oks
 r>cCs(tjd||kr$tddS)NNFCz%Label must be in Normalization Form C)r	normalizer)r rrr
	check_nfcsrAcCst||}|dkrW|dkrLtt||dtkrLdSd}xtt|dddD]\}tjjt||}|tdkrqi|tdtdgkrid}PqiW|sdSd}xwt|dt|D]\}tjjt||}|tdkr*q|td	tdgkrd}PqW|S|d
kr|dkrtt||dtkrdSdSdSdS)
Ni rrTFTr*Dr'i
 r=r=)rr_virama_combining_classrangerZ
joining_typesgetr)r poscp_valueokiZjoining_typerrr
valid_contextjs<   rKcCst||}|dkr~d|ko=t|dknrzt||ddkrzt||ddkrzdSdS|dkr|t|dkrt|dkrt||ddSdS|d	ks|d
kr|dkrt||ddSdS|dkrixN|D]F}|d
kr0qt|ds]t|ds]t|drdSqWdSd|kodknrx4|D],}dt|kodknrdSqWdSd|kodknrx4|D],}dt|kodknrdSqWdSdS)NrrlTFiuZGreekiiZHebrewi0u・ZHiraganaZKatakanaZHani`iiii)rrr)r rG	exceptionrHrrrr
valid_contextos>&4(
-
"
"rOcCst|ttfr$|jd}t|dkrBtdt|t|t|xt	|D]\}}t
|}t|tj
drqmqmt|tj
drt||srtdjt||dt|qmt|tj
drGt||srtd	jt||dt|qmtd
jt||dt|qmWt|dS)Nzutf-8rzEmpty LabelZPVALIDZCONTEXTJz-Joiner {0} not allowed at position {1} in {2}rZCONTEXTOz0Codepoint {0} not allowed at position {1} in {2}z0Codepoint {0} at position {1} of {2} not allowed)
isinstancebytes	bytearraydecoderrrAr>r9r2rrrZcodepoint_classesrKrrrr3rOrr6)r rGrrHrrr
check_labels&


../rTcCsyg|jd}yt|Wn'tk
rItdj|YnXt|sbtd|SWntk
r{YnX|stdt|}t|t|}t	|}t|std|S)Nasciiz$The label {0} is not a valid A-labelzLabel too longzNo Input)
rulabelrrr!UnicodeEncodeErrorunicoderTr_alabel_prefix)r rrr
alabels(



rZcCst|ttfsKy|jd}Wn tk
rJt||SYnX|j}|jtr|t	td}nt||j
dS|j
d}t||S)NrUr)rPrQrRrrWrTlower
startswithrYrrS)r rrr
rVs

	


rVTcCsddlm}d}yCx,t|D]\}}t|}||dkrS|ntj||dfd}|d}	t|dkr|dnd}
|	d	ks|	d
kr|s|	dkr|r|
dkr||7}q&|
dk	r/|	dks"|	dkr|s"|	d
kr/|r/||
7}q&|	d
kr&tq&Wtjd|SWn=tk
rt	dj
t||dt|YnXdS)zBRe-map the characters in the string according to UTS46 processing.r)	uts46datar&Zrr:NVrC3r7Ir?z0Codepoint {0} not allowed at position {1} in {2})
r]r2rbisectZbisect_leftr
IndexErrorrr@rrrr3)Zdomain
std3_rulestransitionalr]outputrGcharZ
code_pointZuts46rowstatusZreplacementrrr
uts46_remap3s0
"



rjc	Cs"t|ttfr$|jd}|r<t|||}d}g}|r`|jd}ntj|}x|r|dr|d=qrW|std|ddkr|d
=d}x!|D]}|jt	|qW|r|jd	d
j
|}t||std|S)NrUF.rzEmpty domainrr&T.zDomain too longr=r=)rPrQrRrSrjsplit_unicode_dots_rerappendrZjoinr%)	rstrictuts46rerfr$resultlabelsr rrr
rOs0

rcCst|ttfr$|jd}|r<t||d}d}g}|s`tj|}n|jd}x|r|dr|d=qrW|std|d	s|d
=d}x!|D]}|jt	|qW|r|jddj
|S)NrUFrkrzEmpty domainrTr&r=r=)rPrQrRrSrjrornrrprVrq)rrrrsrer$rtrur rrr
rSls*


rS)(r&rrcrresysZ	intrangesrrDrYcompileroversion_infostrrXchrrUnicodeErrorrrrrrrrrr!r%r6r9r>rArKrOrTrZrVrjrrSrrrr
<module>sB=	,)
Back to Directory File Manager