Files
pyGoEdge-UserPanel/.venv/Lib/site-packages/urllib3/http2/__pycache__/connection.cpython-312.pyc

102 lines
16 KiB
Plaintext
Raw Normal View History

2025-11-18 03:36:49 +08:00
<EFBFBD>
f<> i<>1<00><01><><00>ddlmZddlZddlZddlZddlZddlZddlZddl Zddl
Zddl m Z ddl mZddlmZmZddlmZddlmZeZej.d <09>Zej2e<1A>Zej8d
<EFBFBD>Zej8d <0B>Zdd <0C>Zdd <0A>Z Gd<0E>dejBe<00>Z"Gd<10>de<10>Z#Gd<12>de<15>Z$y)<16>)<01> annotationsN<73>)<01>
_TYPE_BODY)<01>HTTPHeaderDict)<02>HTTPSConnection<6F>_get_default_user_agent)<01>ConnectionError)<01>BaseHTTPResponse<73>Ts^[!#$%&'*+\-.^_`|~0-9a-z]+$s*[\0\x00\x0a\x0d\r\n]|^[ \r\n\t]|[ \r\n\t]$c<01>><00>ttj|<00><00>S)a5
"An implementation that validates fields according to the definitions in Sections
5.1 and 5.5 of [HTTP] only needs an additional check that field names do not
include uppercase characters." (https://httpwg.org/specs/rfc9113.html#n-field-validity)
`http.client._is_legal_header_name` does not validate the field name according to the
HTTP 1.1 spec, so we do that here, in addition to checking for uppercase characters.
This does not allow for the `:` character in the header name, so should not
be used to validate pseudo-headers.
)<03>bool<6F>RE_IS_LEGAL_HEADER_NAME<4D>match)<01>names <20>GE:\Project\pygoedge\.venv\Lib\site-packages\urllib3/http2/connection.py<70>_is_legal_header_namers<00><00> <10>'<27>-<2D>-<2D>d<EFBFBD>3<> 4<>4<>c<01>><00>ttj|<00><00>S)aK
"A field value MUST NOT contain the zero value (ASCII NUL, 0x00), line feed
(ASCII LF, 0x0a), or carriage return (ASCII CR, 0x0d) at any position. A field
value MUST NOT start or end with an ASCII whitespace character (ASCII SP or HTAB,
0x20 or 0x09)." (https://httpwg.org/specs/rfc9113.html#n-field-validity)
)r <00>RE_IS_ILLEGAL_HEADER_VALUE<55>search)<01>values r<00>_is_illegal_header_valuer,s<00><00> <10>*<2A>1<>1<>%<25>8<> 9<>9rc<01><<00>eZdZdZdZdd<03>Zdd<04>Z d d<05>Zy)
<EFBFBD> _LockedObjectaX
A wrapper class that hides a specific object behind a lock.
The goal here is to provide a simple way to protect access to an object
that cannot safely be simultaneously accessed from multiple threads. The
intended use of this class is simple: take hold of it with a context
manager, which returns the protected object.
)<02>lock<63>_objc<01>D<00>tj<00>|_||_y<00>N)<04> threading<6E>RLockrr)<02>self<6C>objs r<00>__init__z_LockedObject.__init__Ds<00><00><1D>O<EFBFBD>O<EFBFBD>%<25><04> <09><17><04> rc<01>N<00>|jj<00>|jSr)r<00>acquirer<00>r!s r<00> __enter__z_LockedObject.__enter__Hs<00><00> <0C> <09> <09><19><19><1B><13>y<EFBFBD>y<EFBFBD>rc<01>8<00>|jj<00>yr)r<00>release)r!<00>exc_type<70>exc_val<61>exc_tbs r<00>__exit__z_LockedObject.__exit__Ls<00><00> <0A> <09> <09><19><19>rN)r"r )<02>returnr )r*ztype[BaseException] | Noner+zBaseException | Noner,ztypes.TracebackType | Noner.<00>None)<08>__name__<5F>
__module__<EFBFBD> __qualname__<5F>__doc__<5F> __slots__r#r'r-<00>rrrr6sC<00><00><08><06>I<EFBFBD>
<18><19><1C>,<2C><1C>&<26><1C>+<2B> <1C>
<0E> rrc<01><><00><00>eZdZ d d<0F>fd<01> Zdd<02>Zd<11>fd<03> Z dd<04>Zdd<05>Zddd<06>Zdd<07>Z d dd<08>Z
dd <09>Z dd
d
d
d <0B> dd <0C>Z d<11>fd <0A> Z <0A>xZS)<1B>HTTP2Connectionc <01><><00><01>|j<00>|_d|_g|_d|vsd|vr t d<03><00>t <00>|<00>||fi|<03><01>|j<00> t d<04><00>y)N<>proxy<78> proxy_configz$Proxies aren't supported with HTTP/2z%Tunneling isn't supported with HTTP/2)<08> _new_h2_conn<6E>_h2_conn<6E>
_h2_stream<EFBFBD>_headers<72>NotImplementedError<6F>superr#<00> _tunnel_host)r!<00>host<73>port<72>kwargs<67> __class__s <20>rr#zHTTP2Connection.__init__Vso<00><><00><1D>)<29>)<29>+<2B><04> <0A>&*<2A><04><0F>35<33><04> <0A> <12>f<EFBFBD> <1C><0E>&<26> 8<>%<25>&L<>M<> M<> <0A><07><18><14>t<EFBFBD>.<2E>v<EFBFBD>.<2E> <0F> <1C> <1C> (<28>%<25>&M<>N<> N<> )rc<01><><00>tjjd<01><02>}ttjj |<01><03><00>S)NT)<01> client_side)<01>config)<06>h2rH<00>H2Configurationr<00>
connection<EFBFBD> H2Connection)r!rHs rr;zHTTP2Connection._new_h2_connes6<00><00><13><19><19>*<2A>*<2A>t<EFBFBD>*<2A><<3C><06><1C>R<EFBFBD>]<5D>]<5D>7<>7<>v<EFBFBD>7<>F<>G<>Grc<01><><00><01>t<00>|<00><00>|j5}|j<00>|j <00>x}r|j
j |<02>ddd<00>y#1swYyxYwr)r@<00>connectr<<00>initiate_connection<6F> data_to_send<6E>sock<63>sendall)r!<00>connrPrEs <20>rrNzHTTP2Connection.connectisR<00><><00> <0A><07><0F><19> <11>]<5D>]<5D>d<EFBFBD> <10> $<24> $<24> &<26>#<23>0<>0<>2<>2<>|<7C>2<><14> <09> <09>!<21>!<21>,<2C>/<2F><1B>]<5D>]<5D>s <00>>A#<03>#A,c <01><><00>d|vr td<02><00>d|vr td<04><00>|xsd|_|j|<02>d|jvr!d|j<00>d|jxsd <09><00>}n|j<00>d|jxsd <09><00>}|j
j d
<EFBFBD>|j
j d |j<00>f<02>|j
j d |j<00>f<02>|j
j d |j<00>f<02>|j5}|j<00>|_
ddd<0E>y#1swYyxYw)z<>putrequest
This deviates from the HTTPConnection method signature since we never need to override
sending accept-encoding headers or the host header.
<20> skip_hostz`skip_host` isn't supported<65>skip_accept_encodingz&`skip_accept_encoding` isn't supported<65>/<2F>:<3A>[z]:i<>)s:schemeshttpss:methods
:authoritys:pathN) r?<00> _request_url<72>_validate_pathrBrCr><00>append<6E>encoder<<00>get_next_available_stream_idr=)r!<00>method<6F>urlrD<00> authorityrSs r<00>
putrequestzHTTP2Connection.putrequestps <00><00> <17>&<26> <20>%<25>&C<>D<> D<> !<21>V<EFBFBD> +<2B>%<25>&N<>O<> O<><1F>J<EFBFBD>3<EFBFBD><04><19> <0C><1B><1B>C<EFBFBD> <20> <0E>$<24>)<29>)<29> <1B><1B>D<EFBFBD>I<EFBFBD>I<EFBFBD>;<3B>b<EFBFBD><14><19><19>)9<>c<EFBFBD>(:<3A>;<3B>I<EFBFBD><1F>9<EFBFBD>9<EFBFBD>+<2B>Q<EFBFBD>t<EFBFBD>y<EFBFBD>y<EFBFBD>'7<>C<EFBFBD>&8<>9<>I<EFBFBD> <0C> <0A> <0A><1C><1C>3<>4<> <0C> <0A> <0A><1C><1C>j<EFBFBD>&<26>-<2D>-<2D>/<2F>:<3A>;<3B> <0C> <0A> <0A><1C><1C>m<EFBFBD>Y<EFBFBD>-=<3D>-=<3D>-?<3F>@<40>A<> <0C> <0A> <0A><1C><1C>h<EFBFBD><03>
<EFBFBD>
<EFBFBD> <0C>5<>6<> <11>]<5D>]<5D>d<EFBFBD>"<22>?<3F>?<3F>A<>D<EFBFBD>O<EFBFBD><1B>]<5D>]<5D>s <00>1E<03>Ec<01>|<00>t|t<00>r|j<00>n|}|j<00>}t |<01>st dt|<01><00><00><02><00>|D]c}t|t<00>r|j<00>n|}t |<03>rt dt|<03><00><00><02><00>|jj||f<02><00>ey)NzIllegal header name zIllegal header value ) <09>
isinstance<EFBFBD>strr]<00>lowerr<00>
ValueErrorrr>r\)r!<00>header<65>valuesrs r<00> putheaderzHTTP2Connection.putheader<65>s<><00><00>$.<2E>v<EFBFBD>s<EFBFBD>$;<3B><16><1D><1D><1F><16><06><17><1C><1C><1E><06>$<24>V<EFBFBD>,<2C><1C>3<>C<EFBFBD><06>K<EFBFBD>=<3D>A<>B<> B<><1B>E<EFBFBD>&0<><15><03>&<<3C>E<EFBFBD>L<EFBFBD>L<EFBFBD>N<EFBFBD>%<25>E<EFBFBD>'<27><05>.<2E> <20>#8<><13>U<EFBFBD><1A> <0C>!E<>F<>F<> <10>M<EFBFBD>M<EFBFBD> <20> <20>&<26>%<25><1F> 1<> rc<01>><00>|j<00> td<01><00>|j5}|j|j|j|du<00><02>|j <00>x}r|j j|<03>ddd<00>g|_y#1swYg|_yxYw)N<>Must call `putrequest` first.)<03> stream_id<69>headers<72>
end_stream)r=r r<<00> send_headersr>rPrQrR)r!<00> message_bodyrSrPs r<00>
endheaderszHTTP2Connection.endheaders<72>s<><00><00> <0F>?<3F>?<3F> "<22>!<21>"A<>B<> B<> <11>]<5D>]<5D>d<EFBFBD> <10> <1D> <1D><1E>/<2F>/<2F><1C> <0A> <0A>(<28>D<EFBFBD>0<> <1E> <0E>
$<24>0<>0<>2<>2<>|<7C>2<><14> <09> <09>!<21>!<21>,<2C>/<2F><1B><1B><04> <0A><1B><1B><04> <0A>s <00>AB <03> Bc<01>d<00>|j<00> td<02><00>|j5}|j<00>x}r|jj |<03>t |d<03>r<> |j|j<00>}|snlt|t<00>r|j<00>}|j|j|d<05><06>|j<00>x}r|jj |<03><00><>|j|j<00> ddd<01>yt|t<00>r|j<00>} t|t<00>rL|j|j|d<04><06>|j<00>x}r<>|jj |<03>nn|D]N}|j|j|d<05><06>|j<00>x}s<01>4|jj |<03><00>P|j|j<00>ddd<01>y#t$rtdt!|<01>z<00><00>wxYw#1swYyxYw)z<>Send data to the server.
`data` can be: `str`, `bytes`, an iterable, or file-like objects
that support a .read() method.
Nrl<00>readTF)roz6`data` should be str, bytes, iterable, or file. got %r)r=r r<rPrQrR<00>hasattrrt<00> blocksizerdrer]<00> send_dataro<00>bytes<65> TypeError<6F>type)r!<00>datarSrP<00>chunks r<00>sendzHTTP2Connection.send<6E>s<><00><00>
<10>?<3F>?<3F> "<22>!<21>"A<>B<> B<> <11>]<5D>]<5D>d<EFBFBD>#<23>0<>0<>2<>2<>|<7C>2<><14> <09> <09>!<21>!<21>,<2C>/<2F><16>t<EFBFBD>V<EFBFBD>$<24><1A> <20>I<EFBFBD>I<EFBFBD>d<EFBFBD>n<EFBFBD>n<EFBFBD>5<>E<EFBFBD> <20><1D>!<21>%<25><13>-<2D> %<25> <0C> <0C><0E><05><18>N<EFBFBD>N<EFBFBD>4<EFBFBD>?<3F>?<3F>E<EFBFBD>e<EFBFBD>N<EFBFBD>L<>'+<2B>'8<>'8<>':<3A>:<3A>|<7C>:<3A><1C> <09> <09>)<29>)<29>,<2C>7<><1B><15><0F><0F><04><0F><0F>0<><16><1B>]<5D>"<1A>$<24><03>$<24><1B>{<7B>{<7B>}<7D><04> <12><1D>d<EFBFBD>E<EFBFBD>*<2A><18>N<EFBFBD>N<EFBFBD>4<EFBFBD>?<3F>?<3F>D<EFBFBD>T<EFBFBD>N<EFBFBD>J<>'+<2B>'8<>'8<>':<3A>:<3A>|<7C>:<3A><1C> <09> <09>)<29>)<29>,<2C>7<>!%<25><05><1C><0E><0E>t<EFBFBD><EFBFBD><EFBFBD><05>%<25><0E>P<>+/<2F>+<<3C>+<<3C>+><3E>><3E><<3C>><3E> <20>I<EFBFBD>I<EFBFBD>-<2D>-<2D>l<EFBFBD>;<3B>"&<26><19>O<EFBFBD>O<EFBFBD>D<EFBFBD>O<EFBFBD>O<EFBFBD>4<>=<1B>]<5D><>><1D> <12><1F>L<><1A>4<EFBFBD>j<EFBFBD>!<21><12><12> <12><>?<1B>]<5D>s+<00>C!H&<03> H&<03>/BH<02>8H<02>!H#<05>#H&<03>&H/c<01><00>td<01><00>)Nz;HTTP/2 does not support setting up a tunnel through a proxy)r?)r!rBrCrn<00>schemes r<00>
set_tunnelzHTTP2Connection.set_tunnel<65>s<00><00>"<22> I<>
<EFBFBD>
rc <01><><00>d}t<00>}|j5}d}|<04>s}|jjd<02>x}<05>r.|j |<05>}|D<00>]}t |t jj<00>rnt<00>}|jD]T\} }
| dk(rt|
j<00><00>}<01>%|j| jd<04>|
jd<04><00><00>V<00><>t |t jj<00>r6||jz }|j!|j"|j$<00><00><>t |t jj&<00>s<02><01>d}<04><01>|j)<00>x} r|jj+| <0B>|s<02><01>}ddd<00>|<01>J<00>t-||j.t1|<02><00><06>S#1swY<00>/xYw)NFi<46><69>s:status<75>asciiT)<04>statusrn<00> request_urlr{)<19> bytearrayr<rQ<00>recv<63> receive_datardrI<00>events<74>ResponseReceivedrrn<00>int<6E>decode<64>add<64> DataReceivedr{<00>acknowledge_received_data<74>flow_controlled_lengthrm<00> StreamEndedrPrR<00> HTTP2ResponserZrx) r!r<>r{rSro<00> received_datar<61><00>eventrnrhrrPs r<00> getresponsezHTTP2Connection.getresponse<73>s<><00><00><16><06><18>{<7B><04> <11>]<5D>]<5D>d<EFBFBD><1E>J<EFBFBD> <20>$(<28>I<EFBFBD>I<EFBFBD>N<EFBFBD>N<EFBFBD>5<EFBFBD>$9<>9<>=<3D>9<>!<21>.<2E>.<2E>}<7D>=<3D>F<EFBFBD>!'<27><05>%<25>e<EFBFBD>R<EFBFBD>Y<EFBFBD>Y<EFBFBD>-G<>-G<>H<>&4<>&6<>G<EFBFBD>16<31><1D><1D> <0A><06><05>#)<29>Z<EFBFBD>#7<>-0<><15><1C><1C><1E>-@<40>F<EFBFBD>$+<2B>K<EFBFBD>K<EFBFBD>(.<2E> <0A> <0A>g<EFBFBD>(><3E><05> <0C> <0C>W<EFBFBD>@U<>%&<26> 2?<3F>(<28><05>r<EFBFBD>y<EFBFBD>y<EFBFBD>/E<>/E<>F<> <20>E<EFBFBD>J<EFBFBD>J<EFBFBD>.<2E>D<EFBFBD> <20>:<3A>:<3A> %<25> <<3C> <<3C>e<EFBFBD>o<EFBFBD>o<EFBFBD><1E>(<28><05>r<EFBFBD>y<EFBFBD>y<EFBFBD>/D<>/D<>E<>)-<2D>J<EFBFBD>%"(<28>($(<28>#4<>#4<>#6<>6<><<3C>6<><18>I<EFBFBD>I<EFBFBD>%<25>%<25>l<EFBFBD>3<>3!<21><1B>:<16>!<21>!<21>!<21><1C><19><1B><1C>)<29>)<29><16>t<EFBFBD><1B> 
<EFBFBD>
<EFBFBD>=<1B>]<5D>s<00>E G
<03>&4G
<03>
GT)<03>preload_content<6E>decode_content<6E>enforce_content_lengthc <01><><00>d|vr |j<00>%|jj|j<00>|j||<02>|xsi}|j <00>D]0\} }
| j <00>dk(r|
dk(r<01>|j | |
<EFBFBD><00>2dt|j<00>vr|j dt<00><00>|r$|j|<03><05>|j|<03>y|j<00>y)zSend an HTTP/2 request<73>chunkedNztransfer-encodings
user-agent)rq) rQ<00>
settimeout<EFBFBD>timeoutrb<00>itemsrfrj<00>dictr>rrrr}) r!r_r`<00>bodyrnr<>r<>r<>rD<00>k<>vs r<00>requestzHTTP2Connection.request s<><00><00> <15><06> <1E> <11> <0F>9<EFBFBD>9<EFBFBD> <20> <10>I<EFBFBD>I<EFBFBD> <20> <20><14><1C><1C> .<2E> <0C><0F><0F><06><03>$<24><19>-<2D>R<EFBFBD><07><1B>M<EFBFBD>M<EFBFBD>O<EFBFBD>D<EFBFBD>A<EFBFBD>q<EFBFBD><10>w<EFBFBD>w<EFBFBD>y<EFBFBD>/<2F>/<2F>A<EFBFBD><19>N<EFBFBD><18><14><0E><0E>q<EFBFBD>!<21>$<24> $<24> <19><04>T<EFBFBD>]<5D>]<5D> 3<> 3<> <10>N<EFBFBD>N<EFBFBD>=<3D>*A<>*C<> D<> <0F> <10>O<EFBFBD>O<EFBFBD><14>O<EFBFBD> .<2E> <10>I<EFBFBD>I<EFBFBD>d<EFBFBD>O<EFBFBD> <10>O<EFBFBD>O<EFBFBD> rc<01>D<00><01>|j5} |j<00>|j<00>x}r|jj |<02>ddd<00>|j <00>|_d|_g|_t<00>|<00>)<00>y#t
$rY<00>EwxYw#1swY<00>JxYwr) r<<00>close_connectionrPrQrR<00> Exceptionr;r=r>r@<00>close)r!rSr{rEs <20>rr<>zHTTP2Connection.close3s<><00><><00> <11>]<5D>]<5D>d<EFBFBD> <15><14>%<25>%<25>'<27><1F>,<2C>,<2C>.<2E>.<2E>4<EFBFBD>.<2E><18>I<EFBFBD>I<EFBFBD>%<25>%<25>d<EFBFBD>+<2B> <1B><1D>)<29>)<29>+<2B><04> <0A><1E><04><0F><1A><04> <0A> <0A><07> <0A><0F><><1D> <15><14> <15><> <1B>]<5D>s(<00>B<03>=B<02> B<05>B<03>B<05>B<03>Br)rBrerC<00>
int | NonerD<00>
typing.Anyr.r/)r.z)_LockedObject[h2.connection.H2Connection]<5D>r.r/)r_rer`rerDr<>r.r/)rh<00> str | bytesrir<>r.r/)rqr<>r.r/)r{r<>r.r/)NN<4E>http)
rBrerCr<>rn<00>typing.Mapping[str, str] | Nonerrer.r/)r.r<>)NN)r_rer`rer<>z_TYPE_BODY | Nonernr<>r<>r r<>r r<>r rDr<>r.r/)r0r1r2r#r;rNrbrjrrr}r<>r<>r<>r<><00> __classcell__<5F>rEs@rr7r7UsI<00><><00>,0<> O<01><17> O<01>)<29> O<01><F<> O<01> <0A> O<01>H<01>0<>B<01><13>B<01><11>B<01><1D> B<01>
<0E> B<01>> 2<> <1B>+<12>` <20>37<33><1C> 
<EFBFBD><11> 
<EFBFBD><19> 
<EFBFBD>1<> 
<EFBFBD>
<14> 
<EFBFBD>
<0E> 
<EFBFBD>(
<EFBFBD> <16>(
<EFBFBD>\#'<27>37<33> %<1E>!%<25>#<23>'+<2B>%<1E><13>%<1E><11>%<1E> <20> %<1E>
1<> %<1E><1E>%<1E><1D>%<1E>!%<25>%<1E><1D>%<1E>
<0E>%<1E>N<18>rr7c<01>\<00><00>eZdZ d d<06>fd<01> Zedd<02><04>Zdd<03>Zdd<04>Z<07>xZS) r<>c <01>N<00><01>t<00>|<00>||ddd||<03><03>||_d|_y)N<>zHTTP/2)r<>rn<00>version<6F>version_string<6E>reasonr<6E>r<>r)r@r#<00>_data<74>length_remaining)r!r<>rnr<>r{r<>rEs <20>rr#zHTTP2Response.__init__Fs=<00><><00> <0E><07><18><19><1B><16>#<23><17>)<29>#<23> <19>
<EFBFBD><1A><04>
<EFBFBD> !<21><04>rc<01><00>|jSr)r<>r&s rr{zHTTP2Response.data\s <00><00><13>z<EFBFBD>z<EFBFBD>rc<01><00>yrr5r&s r<00>get_redirect_locationz#HTTP2Response.get_redirect_location`s<00><00>rc<01><00>yrr5r&s rr<>zHTTP2Response.closecs<00><00> r)F) r<>r<>rnrr<>rer{rxr<>r r.r/)r.rxr<>) r0r1r2r#<00>propertyr{r<>r<>r<>r<>s@rr<>r<>Dse<00><><00> %<25> "<22><13>"<22> <20>"<22><19> "<22>
<14> "<22> <1D> "<22>
<0E>"<22>,<0E><1A><0E><1A><14> rr<>)rrxr.r )rrxr.r )%<25>
__future__r<00>logging<6E>rer<00>types<65>typing<6E> h2.configrI<00> h2.connection<6F> h2.events<74>_base_connectionr<00> _collectionsrrKrr<00>
exceptionsr <00>responser
<00>orig_HTTPSConnection<6F>TypeVarr <00> getLoggerr0<00>log<6F>compilerrrr<00>Genericrr7r<>r5rr<00><module>r<>s<><00><01>"<22><0E> <09><10> <0C> <0A><10><14><10>)<29>)<29>A<>(<28>'<27>&<26><14><12>F<EFBFBD>N<EFBFBD>N<EFBFBD>3<EFBFBD><17><01><17>g<EFBFBD><17><17><08>!<21><03>$<24>"<22>*<2A>*<2A>%D<>E<><17>'<27>R<EFBFBD>Z<EFBFBD>Z<EFBFBD>(V<>W<><1A> 5<>:<3A><1C>F<EFBFBD>N<EFBFBD>N<EFBFBD>1<EFBFBD>%<25><1C>>l<18>o<EFBFBD>l<18>^  <0A>$<24>  r