3 `¨=\»ã@s–dZddlmZddlZdZdZdZdeƒZdeƒZ d Z d Z d eƒZ d eƒZ d eƒZdeƒZdeƒZdeƒZdeƒZdeƒZdeƒZdeƒZdeƒZdeƒZdeƒZdeƒZdeƒZdeƒZdeƒZdeƒZdeƒZdeƒZdeƒZ d eƒZ!d!Z"d"eƒZ#d#eƒZ$d#eƒZ%d$eƒZ&d%eƒZ'd&eƒZ(d'eƒZ)d(eƒZ*d)eƒZ+d*d+„Z,d,d-„Z-d.d/„Z.dS)0a Regex for URIs These regex are directly derived from the collected ABNF in RFC3986 (except for DIGIT, ALPHA and HEXDIG, defined by RFC2234). They should be processed with re.VERBOSE. Thanks Mark Nottingham for this code - https://gist.github.com/138549 é)Úunicode_literalsNz [\x30-\x39]z[\x41-\x5A\x61-\x7A]z[\x30-\x39A-Fa-f]z %% %(HEXDIG)s %(HEXDIG)sz-(?: %(ALPHA)s | %(DIGIT)s | \- | \. | _ | ~ )z#(?: : | / | \? | \# | \[ | \] | @ )zI(?: ! | \$ | & | ' | \( | \) | \* | \+ | , | ; | = )z?(?: %(unreserved)s | %(pct_encoded)s | %(sub_delims)s | : | @ )z%(?: %(gen_delims)s | %(sub_delims)s )z5%(ALPHA)s (?: %(ALPHA)s | %(DIGIT)s | \+ | \- | \. )*zÄ(?: %(DIGIT)s | [\x31-\x39] %(DIGIT)s | 1 %(DIGIT)s{2} | 2 [\x30-\x34] %(DIGIT)s | 25 [\x30-\x35] ) z@%(dec_octet)s \. %(dec_octet)s \. %(dec_octet)s \. %(dec_octet)sz(?: %(HEXDIG)s ){1,4}z/(?: (?: %(h16)s : %(h16)s ) | %(IPv4address)s )aá(?: (?: %(h16)s : ){6} %(ls32)s | :: (?: %(h16)s : ){5} %(ls32)s | %(h16)s :: (?: %(h16)s : ){4} %(ls32)s | (?: %(h16)s : ) %(h16)s :: (?: %(h16)s : ){3} %(ls32)s | (?: %(h16)s : ){2} %(h16)s :: (?: %(h16)s : ){2} %(ls32)s | (?: %(h16)s : ){3} %(h16)s :: %(h16)s : %(ls32)s | (?: %(h16)s : ){4} %(h16)s :: %(ls32)s | (?: %(h16)s : ){5} %(h16)s :: %(h16)s | (?: %(h16)s : ){6} %(h16)s :: ) z;v %(HEXDIG)s+ \. (?: %(unreserved)s | %(sub_delims)s | : )+z+\[ (?: %(IPv6address)s | %(IPvFuture)s ) \]z8(?: %(unreserved)s | %(pct_encoded)s | %(sub_delims)s )*z;(?: %(unreserved)s | %(pct_encoded)s | %(sub_delims)s | : )z5(?: %(IP_literal)s | %(IPv4address)s | %(reg_name)s )z(?: %(DIGIT)s )*z.(?: %(userinfo)s @)? %(host)s (?: : %(port)s)?z %(pchar)s*z %(pchar)s+z<(?: %(unreserved)s | %(pct_encoded)s | %(sub_delims)s | @ )+z(?: / %(segment)s )*z,/ (?: %(segment_nz)s (?: / %(segment)s )* )?z&%(segment_nz_nc)s (?: / %(segment)s )*z#%(segment_nz)s (?: / %(segment)s )*Úz¬(?: %(path_abempty)s | %(path_absolute)s | %(path_noscheme)s | %(path_rootless)s | %(path_empty)s ) z(?: %(pchar)s | / | \? )*z³(?: (?: // %(authority)s %(path_abempty)s ) | %(path_absolute)s | %(path_rootless)s | %(path_empty)s ) zÃ(?: (?: // %(authority)s %(path_abempty)s ) | %(path_absolute)s | %(path_noscheme)s | %(path_empty)s ) z:%(relative_part)s (?: \? %(query)s)? (?: \# %(fragment)s)?zM^(?: %(scheme)s : %(hier_part)s (?: \? %(query)s )? (?: \# %(fragment)s )? )$z"^(?: %(URI)s | %(relative_ref)s )$z6^(?: %(scheme)s : %(hier_part)s (?: \? %(query)s )? )$cCstjt|tjƒS)N)ÚreÚmatchÚURIÚVERBOSE)Úuri©r úo/private/var/folders/47/550316q90kl84vt_jn5ctz8chwmm0c/T/pip-install-yoigbb1v/oauthlib/oauthlib/uri_validate.pyÚis_uriÏsr cCstjt|tjƒS)N)rrÚ URI_referencer)rr r r Úis_uri_referenceÓsr cCstjt|tjƒS)N)rrÚ absolute_URIr)rr r r Úis_absolute_uri×sr)/Ú__doc__Ú __future__rrÚDIGITZALPHAZHEXDIGÚlocalsZ pct_encodedZ unreservedZ gen_delimsZ sub_delimsZpcharÚreservedÚschemeZ dec_octetZ IPv4addressZh16Zls32Z IPv6addressZ IPvFutureZ IP_literalZreg_nameÚuserinfoÚhostÚportÚ authorityZsegmentZ segment_nzZ segment_nz_ncZ path_abemptyZ path_absoluteZ path_noschemeZ path_rootlessZ path_emptyÚpathÚqueryÚfragmentZ hier_partZ relative_partZ relative_refrr rr r rr r r r Ú sX