U :e:@sddlZddlZddlZddlZdddddddd 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 Z ddd0ddd5dddd d+dd"g Z d6Z d7Z iZ d8d9Zd:Zd;Zdd?Zeefd@dAZdBdCZGdDdEdEeZGdFdGdGeZGdHdIdIeZGdJdKdKeeZGdLdMdMeeZddNlmZeddOZeddPZeddQZdRe_dSej _dTej!_dUe_dVej"_dWej#_dXej$_dYej%_dZej!_d[e_ej"jej"_ej#jej#_ej$jej$_d\ej&_ej%jej%_ej!jej!_eZ'Gd]ddeeZ(Gd^ddeeZ)Gd_ddeeZ*Gd`ddeeZ+GdaddeeZ,GdbddeeZ-dcddZ.e.[.ddfdZ/dgdhZ0ddidjZ1dkdlZ2ddmdZ3dndZ4dodZ5ddpdZ6dqdZ7drZ8da9dsdZ:e;dtZdd{d Z?dd|dZ@eAd}ZBeCeBZDiZEGd~ddejFZGddd ZHddd ZIddd ZJdxdddeIfddZKddZLddZMddZNddZOdaPddZQddZRdaSddZTddZUddZVddZWddZXddZYdaZddZ[dddZ\dddZ]ddZ^ddZ_ddZ`ddZaddZbddZcddZdddZedS)Nurlparse urlunparseurljoin urldefragurlsplit urlunsplit urlencodeparse_qs parse_qslquote quote_plusquote_from_bytesunquote unquote_plusunquote_to_bytes DefragResult ParseResult SplitResultDefragResultBytesParseResultBytesSplitResultBytesZftphttpZgopherZnntpimapZwaisfileZhttpsZshttpZmmsZprosperoZrtspZrtspuZsftpZsvnzsvn+sshZwsZwssZtelnetZsnewsZrsyncZnfsZgitzgit+sshZhdlZsipZsipsZtelZmailtoZnewszAabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+-.cCsttdSN) _parse_cacheclear _safe_quotersr r 1/usr/local/python38/lib/python3.8/urllib/parse.py clear_cacheTsr"asciistrictcCs|Srr )objr r r!_noopcsr&cCs |||Srencode)r%encodingerrorsr r r!_encode_resultfsr+cstfdd|DS)Nc3s"|]}|r|ndVqdS)rNdecode.0xr)r*r r! lsz_decode_args..)tuple)argsr)r*r r1r! _decode_argsjsr5cGsVt|dt}|ddD]}|rt|t|krtdq|rH|tfSt|tfS)Nrz$Cannot mix str and non-str arguments) isinstancestr TypeErrorr&r5r+)r4Z str_inputargr r r! _coerce_argsns  r;c@seZdZdZdddZdS)_ResultMixinStrr r#r$cs|jfdd|DS)Nc3s|]}|VqdSrr'r.r1r r!r2sz)_ResultMixinStr.encode..)_encoded_counterpartselfr)r*r r1r!r(sz_ResultMixinStr.encodeN)r#r$)__name__ __module__ __qualname__ __slots__r(r r r r!r<sr<c@seZdZdZdddZdS)_ResultMixinBytesr r#r$cs|jfdd|DS)Nc3s|]}|VqdSrr,r.r1r r!r2sz+_ResultMixinBytes.decode..)_decoded_counterpartr>r r1r!r-sz_ResultMixinBytes.decodeN)r#r$)r@rArBrCr-r r r r!rDsrDc@s@eZdZdZeddZeddZeddZedd Zd S) _NetlocResultMixinBaser cCs |jdS)Nr _userinfor?r r r!usernamesz_NetlocResultMixinBase.usernamecCs |jdS)Nr6rGrIr r r!passwordsz_NetlocResultMixinBase.passwordcCsD|jd}|sdSt|tr dnd}||\}}}|||S)Nr%%) _hostinfor7r8 partitionlower)r?hostname separatorpercentZzoner r r!rQs  z_NetlocResultMixinBase.hostnamecCsl|jd}|dk rhzt|d}Wn(tk rHd|}t|dYnXd|kr^dkshntd|S)Nr6 z+Port could not be cast to integer value as rizPort out of range 0-65535)rNint ValueError)r?portmessager r r!rWs  z_NetlocResultMixinBase.portN) r@rArBrCpropertyrJrKrQrWr r r r!rFs   rFc@s(eZdZdZeddZeddZdS)_NetlocResultMixinStrr cCsD|j}|d\}}}|r4|d\}}}|s|| dd}|dddkrt |d\}}d|krd |ksd |krd|krt d |rd |kr| d d\}}d |kr| d d\}}t |t d||||} | t|<|| S|d| D]} | tkrJqqJ|| dd} | rtd d| Dr|d| | }}|dddkrt |d\}}d|krd |ksd |krd|krt d |rd |kr| d d\}}d |kr,| d d\}}t |t |||||} | t|<|| S)Nrr\rrr6//rbrczInvalid IPv6 URLrnrcss|]}|dkVqdS) 0123456789Nr r/rr r r!r2szurlsplit..)r;booltypergetrMAX_CACHE_SIZEr"rrrVsplitrr scheme_charsanyrP) rqr{r|r}keycachedr^r~rprvrrestr r r!rsf          cCs<t|\}}}}}}}|r&d||f}|t|||||fS)Nz%s;%s)r;r) componentsr{r^rqrr~rpr}r r r!rs  cCst|\}}}}}}|s4|r`|tkr`|dddkr`|rP|dddkrPd|}d|pXd|}|rp|d|}|r|d|}|r|d|}||S) Nrrr6rrr\rrn)r; uses_netloc)rr{r^rqr~rpr}r r r!rs    c Cs|s|S|s|St||\}}}t|d|\}}}}}} t|||\} } } } }}| |ks`| tkrh||S| tkr| r|t| | | | ||fS|} | s| s|} |} |s|}|t| | | | ||fS|d}|ddkr|d=| dddkr| d}n(|| d}td|dd|dd<g}|D]P}|dkr\z |Wntk rXYnXn|dkrlq(n | |q(|ddkr| d|t| | d |pd| ||fS)Nrrr6...)rr) r;r uses_relativerrrfilterpop IndexErrorappendjoin)baserqr|r}ZbschemeZbnetlocZbpathZbparamsZbqueryZ bfragmentr{r^pathrr~rpZ base_partsZsegmentsZ resolved_pathZsegr r r!rsp            c CsTt|\}}d|kr>t|\}}}}}}t|||||df}nd}|}|t||S)Nrnr)r;rrr) rqr}srpaqZfragZdefragr r r!r=s Z0123456789ABCDEFabcdefc Cs|s|jdSt|tr"|d}|d}t|dkr<|S|dg}|j}tdkrbddtDa|ddD]R}z(|t|dd||ddWqntk r|d||YqnXqnd |S) Nutf-8rMr6rcSs.i|]&}tD]}||t||q qSr )_hexdigr(bytesfromhex)r/rbr r r! cs  z$unquote_to_bytes..r) rr7r8r(rr _hextobyterKeyErrorr)stringbitsresritemr r r!rPs,     z([-]+)rrcCst|trtdd|kr$|j|S|dkr0d}|dkr|| | q| g|| <q|S)N)r)r*max_num_fieldsrR)r r) qskeep_blank_valuesstrict_parsingr)r*rrRZ parsed_resultpairsnamevaluer r r!r s  cCs"t|\}}|rt|ttfs&td|dk rLd||}||krLtddd||D} g} | D]} | sv|svqh| dd} t| dkr|rtd| f|rh| d nqht| ds|rh| d  d d } t | ||d } || } | d d d }t |||d }||}| | |fqh| S)Nz*Separator must be of type string or bytes.r6zMax number of fields exceededcSsg|]}|qSr r )r/s1r r r! szparse_qsl..=rzbad query field: %rrr+ r1) r;r7r8rrVcountrrrrr)rrrr)r*rrRr} num_fieldsrrZ name_valueZnvrrr r r!r s8    cCs|dd}t|||S)Nrr)rr)rr)r*r r r!rs sBABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_.-~c@s$eZdZddZddZddZdS)QuotercCst||_dSr) _ALWAYS_SAFEunionsafe)r?rr r r!__init__szQuoter.__init__cCsd|jjt|fS)Nz<%s %r>) __class__r@dictrIr r r!__repr__szQuoter.__repr__cCs(||jkrt|nd|}|||<|S)Nz%{:02X})rchrformat)r?rrr r r! __missing__szQuoter.__missing__N)r@rArBrrrr r r r!rsrrcCsbt|tr8|s|S|dkrd}|dkr*d}|||}n |dk rHtd|dk rXtdt||S)Nrr$z,quote() doesn't support 'encoding' for bytesz*quote() doesn't support 'errors' for bytes)r7r8r(r9r )rrr)r*r r r!r s' cCsdt|trd|ks$t|tr2d|kr2t||||St|trBd}nd}t|||||}|ddS)Nr r)r7r8rr r)rrr)r*Zspacer r r!r Ts cst|ttfstd|sdSt|tr6|dd}ntdd|D}|t|s^|Sz t |Wn&t k rt |j t |<YnXd fdd|DS)Nz!quote_from_bytes() expected bytesrr#ignorecSsg|]}|dkr|qS)r rr r r!rrsz$quote_from_bytes..csg|] }|qSr r )r/charZquoterr r!rys)r7r bytearrayr9r8r(rstrip_ALWAYS_SAFE_BYTESr-rrr __getitem__r)bsrr rr!r es  c Cs t|dr|}nPzt|r0t|dts0tWn0tk rbt\}}}td|YnXg} |s|D]j\} } t| t r|| |} n|t | |||} t| t r|| |} n|t | |||} | | d| qpn"|D]\} } t| t r|| |} n|t | |||} t| t rB|| |} | | d| qt| t rp|| |||} | | d| qz t| } Wn:tk r|t | |||} | | d| YqX| D]B} t| t r|| |} n|t | |||} | | d| qqd | S)Nitemsrz1not a valid non-string sequence or mapping objectrr) hasattrrrr7r3r9sysexc_infowith_tracebackrr8rr)r~Zdoseqrr)r*Z quote_viaZtyZvatblkrr0Zeltr r r!r{sR                cCstjdtddt|S)Nz/urllib.parse.to_bytes() is deprecated as of 3.8r stacklevel)warningswarnDeprecationWarning _to_bytesrqr r r!to_bytess rcCsJt|trFz|d}Wn(tk rDtdt|dYnX|S)NASCIIzURL z contains non-ASCII characters)r7r8r(r- UnicodeErrorreprrr r r!rs   rcCs`t|}|dddkr<|dddkr<|dd}|dddkr\|dd}|S)Nr6zURL:)r8striprr r r!unwraps   rcCstjdtddt|S)NzUurllib.parse.splittype() is deprecated as of 3.8, use urllib.parse.urlparse() insteadrr)rrr _splittyperr r r! splittypes rcCsDtdkrtdtjat|}|r<|\}}||fSd|fS)Nz ([^/:]+):(.*)) _typeprogrecompileDOTALLmatchgroupsrP)rqrr{datar r r!rs   rcCstjdtddt|S)NzUurllib.parse.splithost() is deprecated as of 3.8, use urllib.parse.urlparse() insteadrr)rrr _splithostrr r r! splithosts r cCsXtdkrtdtjat|}|rP|\}}|rH|ddkrHd|}||fSd|fS)Nz//([^/#?]*)(.*)rr) _hostprogrrrrr)rqrZ host_portrr r r!r s  rcCstjdtddt|S)NzUurllib.parse.splituser() is deprecated as of 3.8, use urllib.parse.urlparse() insteadrr)rrr _splituserhostr r r! splitusers rcCs |d\}}}|r|nd|fS)Nr[r_)r userrr r r!r  sr cCstjdtddt|S)NzWurllib.parse.splitpasswd() is deprecated as of 3.8, use urllib.parse.urlparse() insteadrr)rrr _splitpasswd)rr r r! splitpasswd&s rcCs |d\}}}||r|ndfSNr\rO)rrZpasswdr r r!r-srcCstjdtddt|S)NzUurllib.parse.splitport() is deprecated as of 3.8, use urllib.parse.urlparse() insteadrr)rrr _splitportr r r r! splitport3s rcCsDtdkrtdtjat|}|r<|\}}|r<||fS|dfS)Nz (.*):([0-9]*)) _portprogrrr fullmatchr)r rrWr r r!r<s  rrcCstjdtddt||S)NzVurllib.parse.splitnport() is deprecated as of 3.8, use urllib.parse.urlparse() insteadrr)rrr _splitnport)r defportr r r! splitnportJs rcCsT|d\}}}|s|}n2|rLz t|}Wntk rBd}YnX||fS||fSr)r_rUrV)r rrrWZnportr r r!rQs  rcCstjdtddt|S)NzVurllib.parse.splitquery() is deprecated as of 3.8, use urllib.parse.urlparse() insteadrr)rrr _splitqueryrr r r! splitquerybs rcCs$|d\}}}|r||fS|dfS)Nrr)rqrrr~r r r!risrcCstjdtddt|S)NzTurllib.parse.splittag() is deprecated as of 3.8, use urllib.parse.urlparse() insteadrr)rrr _splittagrr r r!splittagqs rcCs$|d\}}}|r||fS|dfSrmr)rqrrtagr r r!rxsrcCstjdtddt|S)NzUurllib.parse.splitattr() is deprecated as of 3.8, use urllib.parse.urlparse() insteadrr)rrr _splitattrrr r r! splitattrs r"cCs|d}|d|ddfS)Nrxrr6)r)rqZwordsr r r!r!s r!cCstjdtddt|S)NzWurllib.parse.splitvalue() is deprecated as of 3.8, use urllib.parse.parse_qsl() insteadrr)rrr _splitvalue)attrr r r! splitvalues r%cCs |d\}}}||r|ndfS)Nrr)r$rrr r r!r#sr#)rT)r)rT)T)rr)FFrrNr)FFrrNr)rr)rNN)rNN)r)r)r)frr collectionsr__all__rrryZnon_hierarchicalZ uses_queryZ uses_fragmentrrrr"Z_implicit_encodingZ_implicit_errorsr&r+r5r;objectr<rDrFrZrgrlZ_DefragResultBaseZ_SplitResultBaseZ_ParseResultBase__doc__rqrpr{r^rr~rZ ResultBaserrrrrrrwrrzrrrrrrrrrrrrrr r r frozensetrrrr defaultdictrr r r rrrrrrrr r rrr rrrrrrrrrrrr"r!r%r#r r r r!s       %           9  E   * B  6   Q