3 2ao@s\ddlZddlZddlZdddddddd d d d d dddddddddgZdddddddddd d!d"d#d$d%d&d'd(d)gZdddddd*dddd!dd d+d"d#d$d,d&d'd%d-d.d/d(d)gZddd0d"dddd d#d$d1d2d!d%d3gZdd0d4d5d*ddd+d1d2g Zdddddd d!dd#d$d1d2g Zddd0ddd5dddd d+dd"g Z d6Z d7d8d9gZ d:Z iZ d;d<Zd=Zd>Zd?d@ZeefdAdBZeefdCdDZdEdFZGdGdHdHeZGdIdJdJeZGdKdLdLeZGdMdNdNeeZGdOdPdPeeZddQlmZeddRZeddSZeddTZdUe_dVej _dWej!_dXe_dYej"_dZej#_d[ej$_d\ej%_d]ej!_d^e_ej"jej"_ej#jej#_ej$jej$_d_ej&_ej%jej%_ej!jej!_eZ'Gd`ddeeZ(GdaddeeZ)GdbddeeZ*GdcddeeZ+GddddeeZ,GdeddeeZ-dfdgZ.e.[.ddidZ/djdkZ0ddldmZ1dndoZ2dpdqZ3ddrdZ4dsdZ5dtdZ6ddudZ7dvdZ8dwZ9da:dxdZ;ejddd Z?ddd Z@dddZAeBdZCeDeCZEiZFGdddejGZHddd ZIddd ZJddd ZKd}dddeJfddZLddZMddZNdaOddZPdaQddZRddZSddZTdaUddZVdddZWddZXddZYddZZddZ[dS)Nurlparse urlunparseurljoin urldefragurlsplit urlunsplit urlencodeparse_qs parse_qslquote quote_plusquote_from_bytesunquote unquote_plusunquote_to_bytes DefragResult ParseResult SplitResultDefragResultBytesParseResultBytesSplitResultBytesZftphttpZgopherZnntpZimapZwaisfileZhttpsZshttpZmmsZprosperoZrtspZrtspuZsftpZsvnzsvn+sshZwsZwssZtelnetZsnewsZrsyncZnfsZgitzgit+sshZhdlZsipZsipsZtelZmailtoZnewszAabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+-.   cCstjtjdS)N) _parse_cacheclear _safe_quotersr!r!*/opt/alt/python36/lib64/python3.6/parse.py clear_cacheVsr#asciistrictcCs|S)Nr!)objr!r!r"_noopesr'cCs |j||S)N)encode)r&encodingerrorsr!r!r"_encode_resulthsr+cstfdd|DS)Nc3s"|]}|r|jndVqdS)rN)decode).0x)r)r*r!r" nsz_decode_args..)tuple)argsr)r*r!)r)r*r" _decode_argslsr2cGsZt|dt}x.|ddD]}|rt|t|krtdqW|rL|tfSt|tfS)Nrz$Cannot mix str and non-str arguments) isinstancestr TypeErrorr'r2r+)r1Z str_inputargr!r!r" _coerce_argsps  r8c@seZdZfZdddZdS)_ResultMixinStrr$r%cs|jfdd|DS)Nc3s|]}|jVqdS)N)r()r-r.)r)r*r!r"r/sz)_ResultMixinStr.encode..)_encoded_counterpart)selfr)r*r!)r)r*r"r(sz_ResultMixinStr.encodeN)r$r%)__name__ __module__ __qualname__ __slots__r(r!r!r!r"r9sr9c@seZdZfZdddZdS)_ResultMixinBytesr$r%cs|jfdd|DS)Nc3s|]}|jVqdS)N)r,)r-r.)r)r*r!r"r/sz+_ResultMixinBytes.decode..)_decoded_counterpart)r;r)r*r!)r)r*r"r,sz_ResultMixinBytes.decodeN)r$r%)r<r=r>r?r,r!r!r!r"r@sr@c@s@eZdZfZeddZeddZeddZeddZd S) _NetlocResultMixinBasecCs |jdS)Nr) _userinfo)r;r!r!r"usernamesz_NetlocResultMixinBase.usernamecCs |jdS)Nr3)rC)r;r!r!r"passwordsz_NetlocResultMixinBase.passwordcCsD|jd}|sdSt|tr dnd}|j|\}}}|j||S)Nr%%) _hostinfor4r5 partitionlower)r;hostname separatorpercentZzoner!r!r"rKs  z_NetlocResultMixinBase.hostnamecCs@|jd}|dk rr?propertyrDrErKrQr!r!r!r"rBs    rBc@s(eZdZfZeddZeddZdS)_NetlocResultMixinStrcCsD|j}|jd\}}}|r4|jd\}}}|sr?rRrCrHr!r!r!r"rSs rSc@s(eZdZfZeddZeddZdS)_NetlocResultMixinBytescCsD|j}|jd\}}}|r4|jd\}}}|sr?rRrCrHr!r!r!r"ras ra) namedtuplez url fragmentz!scheme netloc path query fragmentz(scheme netloc path params query fragmentz DefragResult(url, fragment) A 2-tuple that contains the url without fragment identifier and the fragment identifier as a separate argument. z$The URL with no fragment identifier.z Fragment identifier separated from URL, that allows indirect identification of a secondary resource by reference to a primary resource and additional identifying information. z SplitResult(scheme, netloc, path, query, fragment) A 5-tuple that contains the different components of a URL. Similar to ParseResult, but does not split params. z%Specifies URL scheme for the request.z0 Network location where the request is made to. z@ The hierarchical path, such as the path to a file to download. z The query component, that contains non-hierarchical data, that along with data in path component, identifies a resource in the scope of URI's scheme and network location. z Fragment identifier, that allows indirect identification of a secondary resource by reference to a primary resource and additional identifying information. zr ParseResult(scheme, netloc, path, params, query, fragment) A 6-tuple that contains components of a parsed URL. z Parameters for last path element used to dereference the URI in order to provide access to perform some operation on the resource. c@seZdZfZddZdS)rcCs |jr|jd|jS|jSdS)N#)fragmenturl)r;r!r!r"geturl;szDefragResult.geturlN)r<r=r>r?rjr!r!r!r"r9sc@seZdZfZddZdS)rcCst|S)N)r)r;r!r!r"rjCszSplitResult.geturlN)r<r=r>r?rjr!r!r!r"rAsc@seZdZfZddZdS)rcCst|S)N)r)r;r!r!r"rjHszParseResult.geturlN)r<r=r>r?rjr!r!r!r"rFsc@seZdZfZddZdS)rcCs |jr|jd|jS|jSdS)N#)rhri)r;r!r!r"rjNszDefragResultBytes.geturlN)r<r=r>r?rjr!r!r!r"rLsc@seZdZfZddZdS)rcCst|S)N)r)r;r!r!r"rjVszSplitResultBytes.geturlN)r<r=r>r?rjr!r!r!r"rTsc@seZdZfZddZdS)rcCst|S)N)r)r;r!r!r"rj[szParseResultBytes.geturlN)r<r=r>r?rjr!r!r!r"rYscCs8ttfttfttff}x|D]\}}||_||_qWdS)N)rrrrrrr:rA)Z _result_pairsZ_decodedZ_encodedr!r!r"_fix_result_transcoding_s  rlTc Csft||\}}}t|||}|\}}}}}|tkrHd|krHt|\}}nd}t||||||} || S)N;r)r8r uses_params _splitparamsr) rischemeallow_fragments_coerce_resultZ splitresultrVqueryrhparamsresultr!r!r"rls cCsRd|kr,|jd|jd}|dkr6|dfSn |jd}|d|||ddfS)N/rmrrr3)findrfind)riir!r!r"ro|s   rocCsLt|}x*dD]"}|j||}|dkrt||}qW|||||dfS)Nz/?#r)lenrwmin)ristartdelimcZwdelimr!r!r" _splitnetlocs   rcCs| stdd|D rdSddl}|jdd}|jdd}|jdd}|jdd}|jd |}||krndSx(d D] }||krttd |d d qtWdS)Ncss|]}t|dkVqdS)N)ord)r-r~r!r!r"r/sz_checknetloc..rrTrrUrg?NFKCz/?#@:znetloc 'z' contains invalid z#characters under NFKC normalization)any unicodedatareplace normalizerP)rVrnZnetloc2r~r!r!r" _checknetlocs       rcCsxtD]}|j|d}qW|S)Nr)_UNSAFE_URL_BYTES_TO_REMOVEr)ribr!r!r"_remove_unsafe_bytes_from_urls rc Cs~t||\}}}t|}t|}t|}|||t|t|f}tj|d}|rV||Stttkrhtd}}}|j d} | dkr|d| dkrf|d| j }|| dd}|dddkrt |d\}}d|krd |ksd |kod|krt d |r$d |kr$|j d d\}}d |kr>|j d d\}}t|t|||||} | t|<|| Sxd|d| D]} | tkrtPqtW|| dd} | std d| Dr|d| j | }}|dddkrt |d\}}d|krd |ksd |krd|krt d |r.)r8rbooltypergetrzMAX_CACHE_SIZEr#rwrJrrPsplitrr scheme_charsr) rirprqrrkeycachedrVrsrhryvr~restr!r!r"rs`        cCs<t|\}}}}}}}|r&d||f}|t|||||fS)Nz%s;%s)r8r) componentsrprVrirtrsrhrrr!r!r"rs cCst|\}}}}}}|s4|r`|tkr`|dddkr`|rP|dddkrPd|}d|pXd|}|rp|d|}|r|d|}|r|d|}||S) Nrz//r3rvrrUrrg)r8 uses_netloc)rrprVrirsrhrrr!r!r"rs    c Cs|s|S|s|St||\}}}t|d|\}}}}}} t|||\} } } } }}| |ks`| tkrh||S| tkr| r|t| | | | ||fS|} | r| r|} |} |s|}|t| | | | ||fS|jd}|ddkr|d=| dddkr| jd}n(|| jd}td|dd|dd <g}xX|D]P}|dkrdy |jWntk r`YnXn|dkrtq0n |j |q0W|d d kr|j d|t| | dj |pd| ||fS) Nrrvr3...rrrr)rr) r8r uses_relativerrrfilterpop IndexErrorappendjoin)baserirqrrZbschemeZbnetlocZbpathZbparamsZbqueryZ bfragmentrprVpathrtrsrhZ base_partsZsegmentsZ resolved_pathZsegr!r!r"rsT            c CsTt|\}}d|kr>t|\}}}}}}t|||||df}nd}|}|t||S)Nrgr)r8rrr) rirrsrpaqZfragZdefragr!r!r"rCs Z0123456789ABCDEFabcdefc Cs|s|jdSt|tr"|jd}|jd}t|dkr<|S|dg}|j}tdkrbddtDaxb|ddD]R}y(|t|dd||ddWqptk r|d||YqpXqpWdj |S) Nzutf-8rGr3rcSs4i|],}tD]"}tt||dg||jq qS))_hexdigbytesrOr()r-rrr!r!r" isz$unquote_to_bytes..r) rr4r5r(rzr _hextobyterKeyErrorr)stringbitsresritemr!r!r"rVs*     z([-]+)utf-8rcCsd|kr|j|S|dkrd}|dkr*d}tj|}|dg}|j}x@tdt|dD],}|t||j|||||dqVWdj|S)NrFzutf-8rrr3rr)r_asciirerrangerzrr,r)rr)r*rrrryr!r!r"rvs   F&c CsRi}t|||||||d}x2|D]*\} } | |kr@|| j| q | g|| <q W|S)N)r)r*max_num_fieldsrL)r r) qskeep_blank_valuesstrict_parsingr)r*rrLZ parsed_resultpairsnamevaluer!r!r"r s cCs.t|\}}| s"t|ttf r*td|dk rPd|j|}||krPtddd|j|D} g} x| D]} | r| rqn| jdd} t| dkr|rtd| f|rn| jd nqnt| ds|rn| d j d d } t | ||d } || } | dj d d }t |||d }||}| j| |fqnW| S)Nz*Separator must be of type string or bytes.r3zMax number of fields exceededcSsg|]}|qSr!r!)r-s1r!r!r" szparse_qsl..=rzbad query field: %rrr+ )r)r*) r8r4r5rrPcountrrzrrr)rrrr)r*rrLrr num_fieldsrrZ name_valueZnvrrr!r!r"r s8      cCs|jdd}t|||S)Nrr)rr)rr)r*r!r!r"rs sAABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_.-c@s$eZdZddZddZddZdS)QuotercCstj||_dS)N) _ALWAYS_SAFEunionsafe)r;rr!r!r"__init__szQuoter.__init__cCsd|jjt|fS)Nz<%s %r>) __class__r<dict)r;r!r!r"__repr__szQuoter.__repr__cCs(||jkrt|ndj|}|||<|S)Nz%{:02X})rchrformat)r;rrr!r!r" __missing__szQuoter.__missing__N)r<r=r>rrrr!r!r!r"r srrvcCsbt|tr8|s|S|dkrd}|dkr*d}|j||}n |dk rHtd|dk rXtdt||S)Nzutf-8r%z,quote() doesn't support 'encoding' for bytesz*quote() doesn't support 'errors' for bytes)r4r5r(r6r )rrr)r*r!r!r"r "s cCsdt|trd|ks$t|tr2d|kr2t||||St|trBd}nd}t|||||}|jddS)Nr r)r4r5rr r)rrr)r*Zspacer!r!r"r Ns c st|ttfstd|sdSt|tr6|jdd}ntdd|D}|jt|s^|jSy t |Wn&t k rt |j t |<YnXdj fdd|DS)Nz!quote_from_bytes() expected bytesrr$ignorecSsg|]}|dkr|qS)r!)r-r~r!r!r"rlsz$quote_from_bytes..csg|] }|qSr!r!)r-char)quoterr!r"rss)r4r bytearrayr6r5r(rstrip_ALWAYS_SAFE_BYTESr,r rr __getitem__r)bsrr!)rr"r _s  cCst|dr|j}nRy t|r2t|dt r2tWn0tk rdtj\}}}tdj|YnXg} |sxr|D]j\} } t| t r|| |} n|t | |||} t| t r|| |} n|t | |||} | j | d| qtWn,x(|D]\} } t| t r|| |} n|t | |||} t| t rL|| |} | j | d| qt| t rz|| |||} | j | d| qy t| } Wn:tk r|t | |||} | j | d| YqXxJ| D]B} t| t r|| |} n|t | |||} | j | d| qWqWdj | S)Nitemsrz1not a valid non-string sequence or mapping objectrr) hasattrrrzr4r0r6sysexc_infowith_tracebackrr5rr)rsZdoseqrr)r*Z quote_viaZtyZvatblkrr.Zeltr!r!r"rusP                c CsJt|trFy|jdj}Wn(tk rDtdt|dYnX|S)NASCIIzURL z contains non-ASCII characters)r4r5r(r, UnicodeErrorrepr)rir!r!r"to_bytess  rcCs`t|j}|dddkr<|dddkr<|ddj}|dddkr\|ddj}|S)Nr3<>zURL:rr)r5strip)rir!r!r"unwraps   rcCsDtdkrtjdtjatj|}|r<|j\}}|j|fSd|fS)Nz ([^/:]+):(.*)) _typeprogrecompileDOTALLmatchgroupsrJ)rirrpdatar!r!r" splittypes   rcCsXtdkrtjdtjatj|}|rP|j\}}|rH|ddkrHd|}||fSd|fS)Nz//([^/#?]*)(.*)rrv) _hostprogrrrrr)rirZ host_portrr!r!r" splithosts  rcCs |jd\}}}|r|nd|fS)NrT)rW)hostuserr}r!r!r" splitusersrcCs |jd\}}}||r|ndfS)NrU)rI)rr}Zpasswdr!r!r" splitpasswdsrcCsDtdkrtjdtjatj|}|r<|j\}}|r<||fS|dfS)Nz(.*):([0-9]*)$) _portprogrrrrr)rrrQr!r!r" splitports  rr3c CsT|jd\}}}|s|}n2|rLy t|}Wntk rBd}YnX||fS||fS)NrU)rWrOrP)rZdefportr}rQZnportr!r!r" splitnports  rcCs$|jd\}}}|r||fS|dfS)Nr)rW)rirr}rsr!r!r" splitquerysrcCs$|jd\}}}|r||fS|dfS)Nrg)rW)rirr}tagr!r!r"splittag&srcCs|jd}|d|ddfS)Nrmrr3)r)riZwordsr!r!r" splitattr-s rcCs |jd\}}}||r|ndfS)Nr)rI)attrr}rr!r!r" splitvalue3sr)rT)r)rT)T)rr)FFrrNr)FFrrNr)rr)rvNN)rNN)rvr)r)\rr collections__all__rrrnZnon_hierarchicalZ uses_queryZ uses_fragmentrrrrr#Z_implicit_encodingZ_implicit_errorsr'r+r2r8objectr9r@rBrSrarfZ_DefragResultBaseZ_SplitResultBaseZ_ParseResultBase__doc__rirhrprVrrsrtZ ResultBaserrrrrrrlrrorrrrrrrrrrrrrrr r r frozensetrrrr defaultdictrr r r rrrrrrrrrrrrrrrrr!r!r!r"s                 !           <  E   ) A  ,   O