McLdZddlZdZdZdZdezZdezZdZd Z d ezZ d ezZ d ezZ d ezZ dezZdZdezZdezZdezZdezZdezZdezZdezZdezZdezZdezZdezZdezZdezZdezZdZdezZd ezZ d ezZ!d!ezZ"d"ezZ#d#ezZ$d$ezZ%d%ezZ&d&ezZ'd'Z(d(Z)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 )? )$cLtjt|tjSN)rematchURIVERBOSEuris 7/usr/lib/python3/dist-packages/oauthlib/uri_validate.pyis_urir s 8Cbj ) ))cLtjt|tjSr)rr URI_referencer r s r is_uri_referencers 8M3 3 33rcLtjt|tjSr)rr absolute_URIr r s r is_absolute_urirs 8L#rz 2 22r)+__doc__rDIGITALPHAHEXDIGlocals pct_encoded unreserved gen_delims sub_delimspcharreservedscheme dec_octet IPv4address IPv6address IPvFuture IP_literalreg_nameuserinfohostport authoritysegment segment_nz segment_nz_nc path_abempty path_absolute path_noscheme path_rootless path_emptypathqueryfragment hier_part relative_part relative_refrrrr rrrr r:s     +VVXX5 > H 4 .  KVVNN  4ffhh > BFFHH L   fhh   RTZTZUU 5  KVVXX U  H &&(( "VVXX % PRXRXRZRZZ '1 @&&((J :FFHHD 7A    fhh  %vvxx/ (&&(( 2   fhh     fhh  MvvPP WY_Y_ZZ6@ I66LL ***44433333r