Files
aitsc/.venv/Lib/site-packages/werkzeug/__pycache__/urls.cpython-312.pyc

75 lines
8.0 KiB
Plaintext
Raw Normal View History

2025-02-23 09:07:52 +08:00
<EFBFBD>
2025-08-17 18:52:05 +08:00
-<2D><>h<EFBFBD><00><01><><00>ddlmZddlZddlZddlZddlZddlmZddlm Z ddlm
2025-02-23 09:07:52 +08:00
Z
ddlm Z ddlm Z dd l mZdd
<EFBFBD>Zej d e<0F>dd <0C>Zeged <0A><00>d<0E>d<0F><01><06>j)<00>Zede<15>Zededz<00>Zededz<00>Zededz<00>Zdd<17>Zdd<18>Zdej8j:vr%ej8j:j=d<19>d d<1A>Zd!d<1B>Z y)"<22>)<01> annotationsN)<01>quote)<01>unquote)<01> urlencode)<01>urlsplit)<01>
urlunsplit<EFBFBD>)<01>iter_multi_itemsc<01>z<00>t|j|j|jd<01><02>}||jfS)zRUsed in :func:`uri_to_iri` after unquoting to re-quote any
invalid bytes.
2025-08-16 19:28:45 +08:00
<20><00><01>safe)r<00>object<63>start<72>end)<02>e<>outs <20>1D:\aitsc\.venv\Lib\site-packages\werkzeug\urls.py<70>_codec_error_url_quoters1<00><00> <10><01><08><08><11><17><17>1<EFBFBD>5<EFBFBD>5<EFBFBD>)<29><02>
2025-02-23 09:07:52 +08:00
3<EFBFBD>C<EFBFBD> <0E><01><05><05>:<3A><15><00>werkzeug.url_quotec<01><><00><04>djd<02>t|<01>D<00><00>}tjd|<02>d<04>tj<00><00>d<07>fd<05> }d|<00><00>|_|S)z<>Create a function that unquotes all percent encoded characters except those
given. This allows working with unquoted characters if possible while not changing
the meaning of a given part of a URL.
<20>|c3<01>6K<00>|]}t|<01>d<00><04><01><00>y<01>w)<02>02XN)<01>ord)<02>.0<EFBFBD>cs r<00> <genexpr>z%_make_unquote_part.<locals>.<genexpr>"s<00><00><><00>><3E> <0A>1<EFBFBD>#<23>a<EFBFBD>&<26><13><1C><EFBFBD> <0A>s<00>z((?:%(?:z))+)c<01><><00><01>t<00>j|<00><00>}g}|D]9}|jt|dd<02><00>|jt |d<03><00><00>;dj |<02>S)Nzutf-8rr )<06>iter<65>split<69>appendr<00>next<78>join)<05>value<75>partsr<00>part<72>patterns <20>r<00>_unquote_partialz,_make_unquote_part.<locals>._unquote_partial%s]<00><><00><14>W<EFBFBD>]<5D>]<5D>5<EFBFBD>)<29>*<2A><05><10><03><19>D<EFBFBD> <0F>J<EFBFBD>J<EFBFBD>w<EFBFBD>t<EFBFBD>W<EFBFBD>.B<>C<> D<> <0F>J<EFBFBD>J<EFBFBD>t<EFBFBD>E<EFBFBD>2<EFBFBD><EFBFBD> '<27><1A><12>w<EFBFBD>w<EFBFBD>s<EFBFBD>|<7C>r<00> _unquote_)r&<00>str<74>returnr,)r%<00>sorted<65>re<72>compile<6C>I<>__name__)<05>name<6D>chars<72>choicesr*r)s @r<00>_make_unquote_partr6sW<00><><00>
<12>h<EFBFBD>h<EFBFBD>><3E><06>u<EFBFBD> <0A>><3E>><3E>G<EFBFBD><10>j<EFBFBD>j<EFBFBD>8<EFBFBD>G<EFBFBD>9<EFBFBD>D<EFBFBD>1<>2<EFBFBD>4<EFBFBD>4<EFBFBD>8<>G<EFBFBD><1C>#,<2C>D<EFBFBD>6<EFBFBD> 2<><14><1D> <1B>r<00>!<00>%<00><00>fragment<6E>queryz&=+#<23>pathz/?#<23>userz:@/?#c<01><00>t|<00>}t|j<00>}t|j<00>}t |j <00>}|jrt|j<00>}nd}d|vrd|<05>d<04>}|jr|<05>d|j<00><00>}|jrDt|j<00>}|jrt|j<00>}|<06>d|<07><00>}|<06>d|<05><00>}t|j||||f<05>S)a-Convert a URI to an IRI. All valid UTF-8 characters are unquoted,
leaving all reserved and invalid characters quoted. If the URL has
a domain, it is decoded from Punycode.
>>> uri_to_iri("http://xn--n3h.net/p%C3%A5th?q=%C3%A8ry%DF")
'http://\u2603.net/p\xe5th?q=\xe8ry%DF'
:param uri: The URI to convert.
.. versionchanged:: 3.0
Passing a tuple or bytes, and the ``charset`` and ``errors`` parameters,
are removed.
.. versionchanged:: 2.3
Which characters remain quoted is specific to each part of the URL.
.. versionchanged:: 0.15
All reserved and invalid characters remain quoted. Previously,
only some reserved characters were preserved, and invalid bytes
were replaced instead of left quoted.
.. versionadded:: 0.6
r <00>:<3A>[<5B>]<5D>@)r<00> _unquote_pathr<<00>_unquote_queryr;<00>_unquote_fragmentr:<00>hostname<6D> _decode_idna<6E>port<72>username<6D> _unquote_user<65>passwordr<00>scheme)<08>urir'r<r;r:<00>netloc<6F>authrKs r<00>
uri_to_irirP=s<><00><00>0 <15>S<EFBFBD>M<EFBFBD>E<EFBFBD> <18><15><1A><1A> $<24>D<EFBFBD> <1A>5<EFBFBD>;<3B>;<3B> '<27>E<EFBFBD> <20><15><1E><1E>0<>H<EFBFBD> <0C>~<7E>~<7E><1D>e<EFBFBD>n<EFBFBD>n<EFBFBD>-<2D><06><13><06>
<EFBFBD>f<EFBFBD>}<7D><14>V<EFBFBD>H<EFBFBD>A<EFBFBD><1D><06> <0C>z<EFBFBD>z<EFBFBD><1A>8<EFBFBD>1<EFBFBD>U<EFBFBD>Z<EFBFBD>Z<EFBFBD>L<EFBFBD>)<29><06> <0C>~<7E>~<7E><1C>U<EFBFBD>^<5E>^<5E>,<2C><04> <10>><3E>><3E>$<24>U<EFBFBD>^<5E>^<5E>4<>H<EFBFBD><1A>V<EFBFBD>1<EFBFBD>X<EFBFBD>J<EFBFBD>'<27>D<EFBFBD><18>6<EFBFBD><11>6<EFBFBD>(<28>#<23><06> <15>u<EFBFBD>|<7C>|<7C>V<EFBFBD>T<EFBFBD>5<EFBFBD>(<28>C<> D<>Drc<01>><00>t|<00>}t|jd<01><02>}t|jd<03><02>}t|jd<04><02>}|j
r+|j
j d<05>jd<06>}nd}d|vrd |<05>d
<EFBFBD>}|jr|<05>d|j<00><00>}|jrHt|jd <0B><02>}|jrt|jd <0B><02>}|<06>d|<07><00>}|<06>d |<05><00>}t|j||||f<05>S) a,Convert an IRI to a URI. All non-ASCII and unsafe characters are
quoted. If the URL has a domain, it is encoded to Punycode.
>>> iri_to_uri('http://\u2603.net/p\xe5th?q=\xe8ry%DF')
'http://xn--n3h.net/p%C3%A5th?q=%C3%A8ry%DF'
:param iri: The IRI to convert.
.. versionchanged:: 3.0
Passing a tuple or bytes, the ``charset`` and ``errors`` parameters,
and the ``safe_conversion`` parameter, are removed.
.. versionchanged:: 2.3
Which characters remain unquoted is specific to each part of the URL.
.. versionchanged:: 0.15
All reserved characters remain unquoted. Previously, only some reserved
characters were left unquoted.
.. versionchanged:: 0.9.6
The ``safe_conversion`` parameter was added.
.. versionadded:: 0.6
z%!$&'()*+,/:;=@r z%!$&'()*+,/:;=?@z%!#$&'()*+,/:;=?@<40>idna<6E>asciir r?r@rAz %!$&'()*+,;=rB) rrr<r;r:rF<00>encode<64>decoderHrIrKrrL)<08>irir'r<r;r:rNrOrKs r<00>
iri_to_urirWqs<00><00>2 <15>S<EFBFBD>M<EFBFBD>E<EFBFBD> <11><15><1A><1A>"3<> 4<>D<EFBFBD> <11>%<25>+<2B>+<2B>$6<> 7<>E<EFBFBD><14>U<EFBFBD>^<5E>^<5E>*=<3D>><3E>H<EFBFBD> <0C>~<7E>~<7E><16><1E><1E>&<26>&<26>v<EFBFBD>.<2E>5<>5<>g<EFBFBD>><3E><06><13><06>
<EFBFBD>f<EFBFBD>}<7D><14>V<EFBFBD>H<EFBFBD>A<EFBFBD><1D><06> <0C>z<EFBFBD>z<EFBFBD><1A>8<EFBFBD>1<EFBFBD>U<EFBFBD>Z<EFBFBD>Z<EFBFBD>L<EFBFBD>)<29><06> <0C>~<7E>~<7E><14>U<EFBFBD>^<5E>^<5E>.<2E>9<><04> <10>><3E>><3E><1C>U<EFBFBD>^<5E>^<5E>.<2E>A<>H<EFBFBD><1A>V<EFBFBD>1<EFBFBD>X<EFBFBD>J<EFBFBD>'<27>D<EFBFBD><18>6<EFBFBD><11>6<EFBFBD>(<28>#<23><06> <15>u<EFBFBD>|<7C>|<7C>V<EFBFBD>T<EFBFBD>5<EFBFBD>(<28>C<> D<>Drz itms-servicesc<01>|<00> |jd<01>} |jd<02>S#t$r|cYSwxYw#t$rYnwxYwg}|j d<03>D]R} |j |jd<02><00><00>%#t$r#|j |jd<01><00>Y<00>PwxYwdj |<02>S)NrSrR<00>.<2E>.)rT<00>UnicodeEncodeErrorrU<00>UnicodeDecodeErrorr"r#r%)<04>domain<69>datar'r(s rrGrG<00>s<><00><00><16><15>}<7D>}<7D>W<EFBFBD>%<25><04>
 <0A><13>{<7B>{<7B>6<EFBFBD>"<22>"<22><> <1E><16><15> <0A><16><> <1E> <0A> <0C> <0A><> <0F>E<EFBFBD><14>
<EFBFBD>
<EFBFBD>4<EFBFBD> <20><04> /<2F> <11>L<EFBFBD>L<EFBFBD><14><1B><1B>V<EFBFBD>,<2C> -<2D><>!<21> /<2F> <11>L<EFBFBD>L<EFBFBD><14><1B><1B>W<EFBFBD>-<2D> .<2E> /<2F><>!<21> <0F>8<EFBFBD>8<EFBFBD>E<EFBFBD>?<3F>s-<00>%<00>6<00> 3<03>3<03> A<03>A<03> A=<02>=)B)<05>(B)c<01>b<00>t|<00>D<00>cgc]
}|d<00><01> |<01><02> }}t|d<02><03>Scc}w)Nr z !$'()*,/:;?@r )r
r)r;<00>x<>itemss r<00>
_urlencoderb<00>s9<00><00>(<28><15>/<2F> D<>/<2F>1<EFBFBD>1<EFBFBD>Q<EFBFBD>4<EFBFBD>3C<33>Q<EFBFBD>/<2F>E<EFBFBD> D<> <14>U<EFBFBD><1E> 0<>0<><30> Es<00>
,<04>,)r<00> UnicodeErrorr-ztuple[str, int])r3r,r4r,r-zt.Callable[[str], str])rMr,r-r,)rVr,r-r,)r]r,r-r,)r;z1t.Mapping[str, str] | t.Iterable[tuple[str, str]]r-r,)!<21>
__future__r<00>codecsr/<00>typing<6E>t<> urllib.parse<73>urllibrrrrr<00>datastructuresr
r<00>register_errorr6<00>bytes<65>rangerU<00>_always_unsaferErDrCrJrPrW<00>parse<73> uses_netlocr#rGrb<00>rr<00><module>rrs<><00><01>"<22> <0A> <09><12><13><1E> <20>"<22>!<21>#<23>,<2C><16><16><06><15><15>*<2A>,B<>C<><1C>2<17>1<><15>t<EFBFBD><1B>1<>d<EFBFBD>1<>D<EFBFBD>1<>2<>9<>9<>;<3B><0E>&<26>z<EFBFBD>><3E>B<><11>#<23>G<EFBFBD>^<5E>f<EFBFBD>-D<>E<><0E>"<22>6<EFBFBD>><3E>E<EFBFBD>+A<>B<> <0A>"<22>6<EFBFBD>><3E>G<EFBFBD>+C<>D<> <0A>1E<01>h4E<01>t<13>&<26>,<2C>,<2C>2<>2<>2<>
<EFBFBD>L<EFBFBD>L<EFBFBD><1C><1C>#<23>#<23>O<EFBFBD>4<><1B>21r