ó Êo5Xc@sdZddlmZddlZdZdZdZdeƒ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*„Z,d+„Z-d,„Z.dS(-u 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 iÿÿÿÿ(tunicode_literalsNu [\x30-\x39]u[\x41-\x5A\x61-\x7A]u[\x30-\x39A-Fa-f]u %% %(HEXDIG)s %(HEXDIG)su-(?: %(ALPHA)s | %(DIGIT)s | \- | \. | _ | ~ )u#(?: : | / | \? | \# | \[ | \] | @ )uI(?: ! | \$ | & | ' | \( | \) | \* | \+ | , | ; | = )u?(?: %(unreserved)s | %(pct_encoded)s | %(sub_delims)s | : | @ )u%(?: %(gen_delims)s | %(sub_delims)s )u5%(ALPHA)s (?: %(ALPHA)s | %(DIGIT)s | \+ | \- | \. )*uÄ(?: %(DIGIT)s | [\x31-\x39] %(DIGIT)s | 1 %(DIGIT)s{2} | 2 [\x30-\x34] %(DIGIT)s | 25 [\x30-\x35] ) u@%(dec_octet)s \. %(dec_octet)s \. %(dec_octet)s \. %(dec_octet)su(?: %(HEXDIG)s ){1,4}u/(?: (?: %(h16)s : %(h16)s ) | %(IPv4address)s )uá(?: (?: %(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 :: ) u;v %(HEXDIG)s+ \. (?: %(unreserved)s | %(sub_delims)s | : )+u+\[ (?: %(IPv6address)s | %(IPvFuture)s ) \]u8(?: %(unreserved)s | %(pct_encoded)s | %(sub_delims)s )*u;(?: %(unreserved)s | %(pct_encoded)s | %(sub_delims)s | : )u5(?: %(IP_literal)s | %(IPv4address)s | %(reg_name)s )u(?: %(DIGIT)s )*u.(?: %(userinfo)s @)? %(host)s (?: : %(port)s)?u %(pchar)s*u %(pchar)s+u<(?: %(unreserved)s | %(pct_encoded)s | %(sub_delims)s | @ )+u(?: / %(segment)s )*u,/ (?: %(segment_nz)s (?: / %(segment)s )* )?u&%(segment_nz_nc)s (?: / %(segment)s )*u#%(segment_nz)s (?: / %(segment)s )*uu¬(?: %(path_abempty)s | %(path_absolute)s | %(path_noscheme)s | %(path_rootless)s | %(path_empty)s ) u(?: %(pchar)s | / | \? )*u³(?: (?: // %(authority)s %(path_abempty)s ) | %(path_absolute)s | %(path_rootless)s | %(path_empty)s ) uÃ(?: (?: // %(authority)s %(path_abempty)s ) | %(path_absolute)s | %(path_noscheme)s | %(path_empty)s ) u:%(relative_part)s (?: \? %(query)s)? (?: \# %(fragment)s)?uM^(?: %(scheme)s : %(hier_part)s (?: \? %(query)s )? (?: \# %(fragment)s )? )$u"^(?: %(URI)s | %(relative_ref)s )$u6^(?: %(scheme)s : %(hier_part)s (?: \? %(query)s )? )$cCstjt|tjƒS(N(tretmatchtURItVERBOSE(turi((s9/usr/lib/python2.7/site-packages/oauthlib/uri_validate.pytis_uriÎscCstjt|tjƒS(N(RRt URI_referenceR(R((s9/usr/lib/python2.7/site-packages/oauthlib/uri_validate.pytis_uri_referenceÒscCstjt|tjƒS(N(RRt absolute_URIR(R((s9/usr/lib/python2.7/site-packages/oauthlib/uri_validate.pytis_absolute_uriÖs(/t__doc__t __future__RRtDIGITtALPHAtHEXDIGtlocalst pct_encodedt unreservedt gen_delimst sub_delimstpchartreservedtschemet dec_octett IPv4addressth16tls32t IPv6addresst IPvFuturet IP_literaltreg_nametuserinfothosttportt authoritytsegmentt segment_nzt segment_nz_nct path_abemptyt path_absolutet path_noschemet path_rootlesst path_emptytpathtquerytfragmentt hier_partt relative_partt relative_refRRR RRR (((s9/usr/lib/python2.7/site-packages/oauthlib/uri_validate.pyt sX