a  #/dàã@spdZddlZdZdZdZdeƒZdeƒZdZd Z d eƒZ d eƒZ d eƒZ d eƒZ deƒZdZdeƒZdeƒZdeƒZdeƒZdeƒZdeƒZdeƒZdeƒZdeƒZdeƒZdeƒZdeƒZdeƒZdeƒZdZdeƒZd 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)-a 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 éNz [\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#([A-Fa-f0-9:]+[:$])[A-Fa-f0-9]{1,4}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 )? )$cCst t|tj¡S©N)ÚreÚmatchÚURIÚVERBOSE©Zuri©r ú9/usr/lib/python3.9/site-packages/oauthlib/uri_validate.pyÚis_uriµsr cCst t|tj¡Sr)rrÚ URI_referencerrr r r Úis_uri_reference¹sr cCst t|tj¡Sr)rrÚ absolute_URIrrr r r Úis_absolute_uri½sr)+Ú__doc__rZDIGITZALPHAZHEXDIGÚlocalsZ pct_encodedZ unreservedZ gen_delimsZ sub_delimsZpcharZreservedÚschemeZ dec_octetZ IPv4addressZ IPv6addressZ IPvFutureZ IP_literalZreg_nameÚuserinfoÚhostÚportZ 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 Úsb      ú               ú  û û