Files
intellecton/venv/lib/python3.12/site-packages/urllib3/__pycache__/response.cpython-312.pyc
T

384 lines
56 KiB
Plaintext
Raw Normal View History

Ë
jãÏãóddlmZddlZddlZddlZddlZddlZddlZddl Z ddl
Z
ddl Z ddl m
Z
ddlmZddlmZddlmZe j*rddlmZ ddlZdd lmZdd
lmZdd lmZdd l m!Z!m"Z"m#Z#dd
l$m%Z%m&Z&m'Z'm(Z(m)Z)m*Z*m+Z+m,Z,m-Z-m.Z.m/Z/ddl0m1Z1m2Z2ddl3m4Z4e j*rddl5m6Z6ejne8«Z9Gdd«Z:Gdde:«Z;Gdd«Z<Gdde:«Z=e Gdde:«Z> ej~dk\rddl@mAZAnddlBmAZAdZCGdde:«ZDGd!„d"e:«ZEd*d#„ZFGd$„d%«ZGGd&„d'ej«ZIGd(„d)eI«Zy#e$rddlZYŒwxYw#e$rdZYŒwxYw#e$rd ZCYŒawxYw)+é)Ú annotationsN)Úcontextmanager)Ú HTTPMessage)Ú HTTPResponse)Útimeouté)ÚBaseHTTPConnection)Úutil)Ú
_TYPE_BODY)ÚHTTPHeaderDict)Ú BaseSSLErrorÚHTTPConnectionÚ
HTTPException) ÚBodyNotHttplibCompatibleÚ DecodeErrorÚDependencyWarningÚ HTTPErrorÚIncompleteReadÚInvalidChunkLengthÚ
InvalidHeaderÚ
ProtocolErrorÚReadTimeoutErrorÚResponseNotChunkedÚSSLError)Ú is_fp_closedÚis_response_to_head)ÚRetry)ÚHTTPConnectionPoolcó0eZdZdddZedd«ZddZy) ÚContentDecodercót«©ÚNotImplementedError©ÚselfÚdataÚ
max_lengths úS/home/antigravity/intellecton/venv/lib/python3.12/site-packages/urllib3/response.pyÚ
decompresszContentDecoder.decompress7ó Ücót«r"r#©r&s r)Úhas_unconsumed_tailz"ContentDecoder.has_unconsumed_tail:ó ä#r,cót«r"r#r.s r)ÚflushzContentDecoder.flush>r+r,éÿÿÿÿ©r'Úbytesr(ÚintÚreturnr6©r8Úbool©r8r6)Ú__name__Ú
__module__Ú __qualname__r*Úpropertyr/r2©r,r)r r 6s ôòð$r,r có8eZdZddZdddZed d«Zd
dZy) ÚDeflateDecodercó`d|_d|_d|_tj«|_y)NTr,)Ú
_first_tryÚ_first_try_dataÚ _unfed_dataÚzlibÚ
decompressobjÚ_objr.s r)Ú__init__zDeflateDecoder.__init__Cs)؈ŒØÔ؈ÔÜ×(ˆ r,cóŽ|j|z}d|_|s|jjs|S|}|dkrd}n
|dk(r||_y|js4|jj |jj|z|¬«S|xj
|z
c_ |jj ||¬«}|rd|_d|_|S#t j$rdd|_t
jt j «|_ |j |j
|¬«d|_cYS#d|_wxYwwxYw)Nr,r©r(F)
rFrIÚunconsumed_tailrDr*rErGÚerrorrHÚ MAX_WBITS)r&r'r(Úoriginal_max_lengthÚ decompresseds r)r*zDeflateDecoder.decompressIs?Ø×Ñ $ÑØˆÔÙ˜DŸI™I׈KØØ  Ò ‰JØ
 
$ˆDÔ ØðŠØ—99× ×)¨DÑ0¸Zðð
ð
×Ò ÑðŸ9™9×ÀÐLˆØ"'Ø'*ÔÐ øäz‰zò#ˆDŒOÜ×*¬D¯N©N¨?Ó;ˆDŒIð
Ø×(Ð5Hðð(+×$ø sÕ$úð +ús%Â.C
Ã
AEÄD7Ä-EÄ7 EÅEcóŒt|j«xs.t|jj«xr
|j Sr")r:rFrIrMrDr.s r)r/z"DeflateDecoder.has_unconsumed_tailss8äD×
Ü × C°D·O±OÐ0Cð
r,có6|jj«Sr"©rIr2r.s r)r2zDeflateDecoder.flushyóØy‰yÓ Ð r,r8ÚNoner3r5r9r;©r<r=r>rJr*r?r/r2r@r,r)rBrBBs&ó (+ðTò
óð
ô
!r,rBcóeZdZdZdZdZy)ÚGzipDecoderStaterréN)r<r=r>Ú FIRST_MEMBERÚ
OTHER_MEMBERSÚ SWALLOW_DATAr@r,r)rZrZ}sØ€LØ€MØLr,rZcó8eZdZddZdddZed d«Zd
dZy) Ú GzipDecodercó’tjdtjz«|_tj
|_d|_y)r,)rGrHrOrIrZr\Ú_stateÚ_unconsumed_tailr.s r)rJzGzipDecoder.__init__„s2Ü×& r¬D¯N©NÑ':Ó;ˆŒ Ü&×3ˆŒ Ø #ˆÕr,c
ó t«}|jtjk(r t |«S|dk(r|xj
|z
c_y|j
|z}|s!|j jr t |«S ||j j|t|t|«z
d«¬«z
}|j jxs|j jx|_}|dkDrt|«|k\r t |«S|s t |«S|j jr@tj|_tj dtj"z«|_Œï#tj$rJ|j}tj|_d|_|tjk(r
t |«cYSwxYw)Nrr,rLrb)Ú bytearrayrcrZr^r6rdrIÚeofr*ÚmaxÚlenrGrNr]rMÚ unused_datarHrO)r&r'r(ÚretÚprevious_states r)r*zGzipDecoder.decompress‰ÜØ ;‰;Ô ˜“:Ð à ˜Š?ð
× ! TÑ ð×$ tÑÙ˜Ÿ ™ Ÿ
š
ܘ“:Ð àð
Øt—y‘yפS¨´c¸#³hÑ)>ÀÓ%Bðñð— ‘ ×B¨T¯Y©Y×-BÑ-Bð
ˆ ! Dð˜AŠ~¤# c£(¨jÒ"8ØôSñܘS“zÐy‰y}Š}Ü.×< Ü ×.¨r´D·N±NÑ/BÓC” ð7øô
—:
Ø!%§¡ä; Ø(+Ô!Ô%5×%CÑ%CÒ  ð
úsÂ6E0Å0AG
Ç G
có,t|j«Sr")r:rdr.s r)r/zGzipDecoder.has_unconsumed_tail»säD×*r,có6|jj«Sr"rTr.s r)r2zGzipDecoder.flush¿rUr,NrVr3r5r9r;rXr@r,r)r`r`ƒs&ó
0ðdòð!r,r`cóBeZdZddZdd dZdd
dZed d«Zd dZy)
Ú
BrotliDecodercóètj«|_t|jd«r"t |d|jj
«yt |d|jj «y)Nr*Ú _decompress)ÚbrotliÚ DecompressorrIÚhasattrÚsetattrr*Úprocessr.s r)rJzBrotliDecoder.__init__ÉsLÜ×-ˆDŒIÜt—y‘y ,Ô˜˜m¨T¯Y©Y×-AÑ-AÕ˜˜m¨T¯Y©Y×->Ñ->Õ?r,cót«r"r#)r&r'Úoutput_buffer_limits r)rrzBrotliDecoder._decompressÑs Ü 'r,cóÊ |dkDr|j||¬«S|j|«S#t$r.tjdt«|j|«cYSwxYw)Nr)ryz;Brotli >= 1.2.0 is required to prevent decompression bombs.)rrÚ TypeErrorÚwarningsÚwarnrr%s r)r*zBrotliDecoder.decompressÔskð
 ×+¨DÀjÐ×+¨DÓ1øÜò

Øð×Ó
.ús+š+«4A"Á!A"cóX |jj« S#t$rYywxYw)NF)rIÚcan_accept_more_dataÚAttributeErrorr.s r)r/z!BrotliDecoder.has_unconsumed_tailãs/ð
ØŸ9™9×;øÜ
Ùð
ús  )¨)códt|jd«r|jj«Sy)Nr2r,)rurIr2r.s r)r2zBrotliDecoder.flushês$Üt—yy —yy—Ór,NrVr3)r'r6ryr7r8r6r5r9r;) r<r=r>rJrrr*r?r/r2r@r,r)rprpÅs+ó @ô

ò ó
ð ô  r,rp)éé)ÚzstdTcó8eZdZddZdddZed d«Zd
dZy) Ú ZstdDecodercó6tj«|_yr")r„ÚZstdDecompressorrIr.s r)rJzZstdDecoder.__init__ûsÜ×/ˆDIr,cóR|s
|jsy|jjr2|jj|z}t j
«|_|jj
||¬«}t|«}|g}|jjrÿ|jjré|dks||krß|jj}|jjst j
«|_|jj
||dkDr||z
nd¬«}t|«x}r|j|«||z
}n|jjrn8|jjr"|jjr |dkrŒÙ||krŒßdj|«S)Nr,rLrr4) r/rIrgrjr„rˆr*riÚ needs_inputÚappendÚjoin)r&r'r(ÚpartÚlengthÚ
data_partsrjÚ part_lengths r)r*zZstdDecoder.decompressþsZÙ × 8Ò 8ØØy‰y}Š}Ø—y‘y×,¨tÑ3Ü ×3” Ø—99׸ÐDˆ˜“YˆFؘˆJð— ‘ —
Ø—I‘I× !’^ v°
Ò':à"Ÿi™i×3 Ø—yy×,Ü $× 5Ñ 5Ó 7D”IØ—yØ8BÀQº 
¨VÒ 3ÈBðô#& d£)Ð+×% dÔ˜kÑ)‘FØ—Y‘Y×ð— ‘ —
Ø—I‘I× !“^ v°
Ó':ð—88˜ 'r,có¢|jjxs|jj xst|jj«Sr")rIrgr:rjr.s r)r/zZstdDecoder.has_unconsumed_tail s>àŸ ™ ×·±·±ÐÄ4Ø— ‘ ×Dð
r,cóF|jjs td«y)NzZstandard data is incompleter,)rIrgrr.s r)r2zZstdDecoder.flush&sØ—99—=!Ð"@Ór,NrVr3r5r9r;rXr@r,r)r†r†ús&ó (ðD
ò ó
ð ô
 r,r†Fcó@eZdZdZdZddZd dZd
d dZed d«Z y)
Ú MultiDecodera
From RFC7231:
If one or more encodings have been applied to a representation, the
sender that applied the encodings MUST generate a Content-Encoding
header field that lists the content codings in the order in which
they were applied.
écó$|jd«Dcgc]}|j«Œ}}t|«|jkDr$t dt|«d|j«|Dcgc]
}t |«Œc}|_ycc}wcc}w),z)Too many content encodings in the chain: z > )ÚsplitÚstripriÚmax_decode_linksrÚ _get_decoderÚ _decoders)r&ÚmodesÚmÚ encodingsÚes r)rJzMultiDecoder.__init__9s„Ø(-¯ © °CÓ(8Ö9 1Q—WW•YÐ9ˆ Ð ˆy>˜D× Øy“>Ð" # d×&;Ñ&;Ð%<ðð
ð4=Ö=¨aœ, q=ˆùò
:ùò >s BÁ-B
có<|jdj«S©Nr)r2r.s r)r2zMultiDecoder.flushBsØ~‰~˜ ×(r,cóB|dkr-t|j«D]}|j|«}Œ|St«} d}t|j«D]&}|j||t |«z
¬«}|sŒ%d}Œ(||z
}|rt |«|k\r t |«Sd}Œc)NrTFrLr,)Úreversedrœr*rfrir6)r&r'r(ÚdrkÚany_datas r)r*zMultiDecoder.decompressEs­Ø ˜Š?ܘdŸn™nÓ
*Ø—|‘| DÓ)‘ð
ˆKä‹kˆð؈HܘdŸn™nÓ
$Ø—|| D°ZÄ#ÀcÃ(Ñ5JKÚØ#
4‰KˆCÙœs 3›x¨:Ò˜S“zЈDðr,có:td|jD««S)Nc3ó4K|]}|jŒy­wr")r/)Ú.0r¥s r)ú <genexpr>z3MultiDecoder.has_unconsumed_tail.<locals>.<genexpr>asèø€ÒA¨QAùs)Úanyrœr.s r)r/z MultiDecoder.has_unconsumed_tail_säÑA°$·.±.ÔAr,N)rÚstrr8rWr;r3r5r9)
r<r=r>Ú__doc__ršrJr2r*r?r/r@r,r)r”r”,s4ñðÐóð4òBóñBr,r”có¤d|vr t|«S|dvr
t«St|dk(r
t«Str|dk(r
t «St
«S)Nr—)Úgzipúx-gzipÚbrr„)r”r`rsrpÚHAS_ZSTDr†rB)Úmodes r)rrdsUØ
ˆd˜DÓ Ð‹}Ðä
Иd dšlÜÐåD˜F’NÜ‹}Ðä Ó Ðr,có8eZdZdZddZd dZd
dZd dZd dZy)
ÚBytesQueueBuffera˜Memory-efficient bytes buffer
To return decoded data in read() and still follow the BufferedIOBase API, we need a
buffer to always return the correct amount of bytes.
This buffer should be filled using calls to put()
Our maximum memory usage is determined by the sum of the size of:
* self.buffer, which contains the full data
* the largest chunk that we will copy in get()
cóDtj«|_d|_y)Ú collectionsÚdequeÚbufferÚ_sizer.s r)rJzBytesQueueBuffer.__init__„sÜ?J×?PÑ?PÓ?RˆŒ ؈
r,có|jSr")r.s r)Ú__len__zBytesQueueBuffer.__len__ˆs Øz‰zÐr,cóv|jj|«|xjt|«z
c_yr")rri©r&r's r)ÚputzBytesQueueBuffer.puts&Ø ×ј4Ô Ø
Š
”c˜$“iÑŽ
r,cóH|dk(ry|js td«|dkr td«t|jd«|k(rLt |jdt
«r/|xj |zc_|jj«Sd}tj«}||krä||z
}|jj«}t|«}||krgt|«}|d|||d}}|j|«|jj|«|xj |zc_ |j«S|j|«|xj |zc_||z
}|js |j«S||krŒä|j«S)Nrr,zbuffer is emptyzn should be > 0)Ú RuntimeErrorÚ
ValueErrorriÚ
isinstancer6ÚpopleftÚioÚBytesIOÚ
memoryviewÚwriteÚ
appendleftÚgetvalue) r&ÚfetchedrkÚ remainingÚchunkÚ chunk_lengthÚ
left_chunkÚ right_chunks r)ÚgetzBytesQueueBuffer.getslØ Š6ØØÜÐ
ŠUÜÐ ˆt{‰{˜1‰~Ó  
°4·;±;¸q±>Ä5Ô(IØ JŠJ˜!‰O—;;× ˆÜj‰j‹lˆØ˜ŠkؘG™ ˆIØ—KK×)ˆ˜u:ˆ˜" )Ø*/°
°Ð*;¸UÀ9À:Ð=N˜K
Ø— ‘ ˜*Ô ×& 
˜'•
Øð|‰|‹~Ðð— ‘ ˜%Ô Ø
˜*•
Ø  #ˆGà—;’;Øà|‰|ð'˜kð&|‰|r,cót|jŠs|jdk(sJyt«dk(r1‰j«}t |t
«ra|j
«}nPtj«}|jˆfdtt««D««|j«}d|_|S)Nrr,rc3ó>K|]}j«Œy­wr"))Ú_r¹s €r)z+BytesQueueBuffer.get_all.<locals>.<genexpr>½søèø€Ò˜6Ÿ>™>×Hùsƒ) riÚpoprÃÚtobytesrÅÚ
writelinesÚrangerÊ)r&Úresultrks @r)Úget_allzBytesQueueBuffer.get_all²ø€ØˆÙØ—:‘: ’?Ð "Ü ˆv‹;˜!Ò Ø—Z‘Z“\ˆFܘ&¤*ÔŸÓ)‘ä—*‘*“,ˆCØ N‰NÓH´U¼3¸v»;Ó5GÔ —\‘\“^ˆF؈Œ
؈
r,NrV©r8r7)r'r6r8rW)r7r8r6r;) r<r=r>r­rJr¿r@r,r)vs!ñ óóó ó!ôFr,có^eZdZUgd¢Zeedgz
Zeredgz
Zgd¢ZeejfZ
de d<ee
ejfz
Z
ere
e jfz
Z
dddœ d"d „Zd#d
Zed$d «Zd%d Zed&d
«Zej(d'd«Zed(d«Zed)d«Zej(d*d«Z d+ d,dZ d- d.dZ d/ d0dZ d/ d,dZd1dZd1dZd1dZd1dZd1dZ d2 d3dZ d$dZ!d4dZ"d5dZ#d2d6dZ$d5d „Z%d&d!„Z&y)7ÚBaseHTTPResponse)ÚdeflateNr±r„)i-i.i/i3i4ztuple[type[Exception], ...]ÚDECODER_ERROR_CLASSES)ÚheadersÚretriescó~t|t«r||_nt|«|_||_||_||_||_||_d|_||_ ||_
d|_ |jjdd«j«} d| jd«D«}
d|
vrd|_ d|_|y)NFztransfer-encodingÚc3ó<K|]}|j«Œy­wr")r™)Úencs r)z,BaseHTTPResponse.__init__.<locals>.<genexpr>îsèø€Ò> SS—YY—[Ñ>ùsr—ÚchunkedT)r ÚstatusÚversionÚversion_stringÚreasonÚdecode_contentÚ_has_decoded_contentÚ _request_urlrâÚlowerr˜Ú_decoder) r&Ú request_urlrâÚtr_encrŸs r)rJzBaseHTTPResponse.__init__Òô gœ~Ô "ˆD)¨'Ó2ˆDŒL؈Œ ؈Œ ØÔ؈Œ ØÔØ$)ˆÔ!Ø(3ˆÔ؈Œ àˆŒ Ø×!Ð"5°rÓ:×Bˆá>¨F¯L©L¸Ó,=Ô>ˆ Ø ˜ Ñ ˆDŒLà/3ˆŒ
Ú r,cój|j|jvr|jjd«Sy)a
Should we redirect and where to?
:returns: Truthy redirect location string if we got a redirect status
code and valid location. ``None`` if redirect status and no
location. ``False`` if not a redirect status code.
ÚlocationF)ÚREDIRECT_STATUSESrár.s r)Úget_redirect_locationz&BaseHTTPResponse.get_redirect_locationõs.ð ;‰;˜$× —<<×#  r,cót«r"r#r.s r)r'zBaseHTTPResponse.datar0r,cób|jjd«}tj|«S)
Deserializes the body of the HTTP response as a Python object.
The body of the HTTP response must be encoded using UTF-8, as per
`RFC 8529 Section 8.1 <https://www.rfc-editor.org/rfc/rfc8259#section-8.1>`_.
To use a custom JSON decoder pass the result of :attr:`HTTPResponse.data` to
your custom decoder instead.
If the body of the HTTP response is not decodable to UTF-8, a
`UnicodeDecodeError` will be raised. If the body of the HTTP response is not a
valid JSON document, a `json.JSONDecodeError` will be raised.
Read more :ref:`here <json_content>`.
:returns: The body of the HTTP response as a Python object.
zutf-8)r'ÚdecodeÚ_jsonÚloadsr¾s r)ÚjsonzBaseHTTPResponse.jsons'ð$y‰y×Ñ ÓÜ{‰{˜4Ó Ð r,cót«r"r#r.s r)ÚurlzBaseHTTPResponse.urlr0r,cót«r"r#©r&s r)zBaseHTTPResponse.urlr0r,cót«r"r#r.s r)Ú
connectionzBaseHTTPResponse.connection"r0r,có|jSr")Ú_retriesr.s r)zBaseHTTPResponse.retries&s à}‰}Ðr,cój|*|jr|jdj|_||_y)Nr4)ÚhistoryÚredirect_locationrþr)r&s r)zBaseHTTPResponse.retries*s-ð Ð  7§?¢?Ø *×<ˆDŒH؈
r,cót«r"r#©r&Úamtrìs r)ÚstreamzBaseHTTPResponse.stream1s
ô#r,cót«r"r#)r&r
Ú
cache_contents r)ÚreadzBaseHTTPResponse.read6s
ô #r,cót«r"r#r s r)Úread1zBaseHTTPResponse.read1>ó
ô
#r,cót«r"r#r s r)Ú read_chunkedzBaseHTTPResponse.read_chunkedErr,cót«r"r#r.s r)Ú release_connzBaseHTTPResponse.release_connLr+r,cót«r"r#r.s r)Ú
drain_connzBaseHTTPResponse.drain_connOr+r,cót«r"r#r.s r)ÚshutdownzBaseHTTPResponse.shutdownRr+r,cót«r"r#r.s r)ÚclosezBaseHTTPResponse.closeUr+r,cóz|jjdd«j«}|j€€||jvrt |«|_yd|vr\|j
d«Dcgc].}|j«|jvr|j«Œ0}}|rt |«|_yyyycc}w)z=
Set-up the _decoder attribute if necessary.
úcontent-encodingräNr—)ÚCONTENT_DECODERSrr˜r™)r&Úcontent_encodingr s r)Ú
_init_decoderzBaseHTTPResponse._init_decoderXð  Ÿ<™<×+Ð,>ÀÓCר =‰=Ð Ø 4×#8Ñ#8Ñ8Ü ,Ð-=Ó >
ØÐ3°CÓàØ—w‘w“y D×$9Ñ$9Ñ—GG•Ið ðñ
Ü$0Ð1AÓ$BD•Mðð
 !ùòsÁ-3B8cóv|s|jr td«|S||rd} |jr$|jj||¬«}d|_|r||j«z
}|S#|j$r?}|j
j
dd«j«}td|z|«|d}~wwxYw) zN
Decode the data passed in and potentially flush the decoder.
ú_Calling read(decode_content=False) is not supported after read(decode_content=True) was called.Nr4rLTrzEReceived response with content-encoding: %s, but failed to decode it.)
r*rÚ_flush_decoder)r&r'Ú
flush_decoderr(r rs r)Ú_decodezBaseHTTPResponse._decodekñØ×ððˆKà Ð ¡ØˆJð
Ø}Š}Ø—}‘}×ÀÐLØ,0Ô Ø D× )ˆˆ øð× Ø#Ÿ|™|×/Ð0BÀBÓ Üð'Ø)9ñóðð 
ûð ús£0A*Á*B8Á9:B3Â3B8cóˆ|jr6|jjd«|jj«zSy)zk
Flushes the decoder. Should only be called if the decoder is actually
being used.
r,)r*r2r.s r)r#zBaseHTTPResponse._flush_decoders5ð
=Š=Ø—=‘=×+¨CÓ0°4·=±=×3FÑ3FÓ3HÑ r,có†|jt|««}t|«dk(ry||dt|«t|«S)rri)r&Útemps r)ÚreadintozBaseHTTPResponse.readintošs;Øy‰yœ˜Q›Ó ˆÜ ˆt‹9˜Š>Øà!ˆAˆk”D“ ˆt“9Ð r,có|jSr"©r.s r)Ú
getheaderszBaseHTTPResponse.getheaders£ó Ø|‰|Ðr,có:|jj||«Sr"))r&ÚnameÚdefaults r)Ú getheaderzBaseHTTPResponse.getheader¦sØ|‰|×Ñ  .r,có|jSr"r,r.s r)ÚinfozBaseHTTPResponse.infoªr.r,có|jSr")r.s r)ÚgeturlzBaseHTTPResponse.geturl­s Øx‰xˆr,)ú>typing.Mapping[str, str] | typing.Mapping[bytes, bytes] | Nonerèr7r7ú
str | Nonerìr:r8ú Retry | Noner8rW)r8z"str | None | typing.Literal[False]r;)r8z
typing.Any©r8r8©r8r8rW)r8zBaseHTTPConnection | None)r8r9)r9r8rW©iN)r
ú
int | Nonerìú bool | Noner8útyping.Iterator[bytes]©NNF©r
r=r>r
r:r8r6©NN©r
r=r>r8r6rVr")
r'r6r>r$r:r(r=r8r6)r(zbytearray | memoryview[int]r8r7)r8r )r0r1r8r8r8)'r<r=r>rrsÚIOErrorrGrNÚ__annotations__r„Ú ZstdErrorrJr?r'Úsetterrr rrrrrrrr r%r#r*r-r2r4r6r@r,r)ÃÚØ
ÐØ˜T˜FÑÙØ˜V˜HÑÚà:AÀ4Ç:Á:Ð9NÐÐ
ÐØ &§,¡, ÑáØ $§.¡.Ð!2Ñð
SWð!%ñ!Pð!ð !
ð ! ð
!ð!ð! ð!ð!
ó!*óF
ðòð!ð*òð ‡Zðòðòóðð
‡^ óð ðFJðð$Ø7BðóØ&*Ø
ðð 
ó Ø&*ð
ð
ó Ø&*ð
ð
ó Cð0"&ð #àð#ð#ðð #ð
ð #ð
ó
#óJóóôôr,cóeZdZdZ d d ˆfd
Zd!dZd!dZed"d«Zed#d«Z d$dZ
d%dZ d&d „Z e
d'd
«Z d(d d œ d)d
Z d(d d œ d)dZ d* d+dZ d, d-dZ d. d/dZd$dZd!dZd!dZed$d«Zd%dZd!dZd$dZd!dZd0dZ d, d/dZed1d«Zej>d2d«Zd3dZ ˆxZ!S)4r
HTTP Response container.
Backwards-compatible with :class:`http.client.HTTPResponse` but the response ``body`` is
loaded and decoded on-demand when the ``data`` property is accessed. This
class is also compatible with the Python standard library's :mod:`io`
module, and can hence be treated as a readable object in the context of that
framework.
Extra parameters for behaviour not present in :class:`http.client.HTTPResponse`:
:param preload_content:
If True, the response's body will be preloaded during construction.
:param decode_content:
If True, will attempt to decode the body based on the
'content-encoding' header.
:param original_response:
When this HTTPResponse wrapper is generated from an :class:`http.client.HTTPResponse`
object, it's convenient to include the original for debug purposes. It's
otherwise unused.
:param retries:
The retries contains the last :class:`~urllib3.util.retry.Retry` that
was used during the request.
:param enforce_content_length:
Enforce content length checking. Body returned by server must match
value of Content-Length header, if present. Otherwise, raise error.
c
óØt|||||||||
¬«||_||_d|_d|_d|_| |_d|_| |_ |rt|ttf«r||_|
|_
| |_t|d«r||_||_d|_|j%|«|_t)«|_|r%|js|j-|¬«|_yyy)N)Frr©)ÚsuperrJÚenforce_content_lengthÚ
auto_closeÚ_bodyÚ_uncached_read_occurredÚ_fpÚ_original_responseÚ_fp_bytes_readÚmsgrÃr6Ú_poolÚ _connectionruÚ_sock_shutdownÚ
chunk_leftÚ _init_lengthÚlength_remainingrµÚ_decoded_bufferr)r&ÚbodyráÚpreload_contentrìÚoriginal_responseÚpoolrrSrLÚrequest_methodrñrMÚ
sock_shutdownÚ __class__s €r)rJzHTTPResponse.__init__Òø€ô* ÑØØØØØð ô
ð'=ˆÔŒàˆŒ
Ø',ˆÔ$Ø04ˆŒØ"3ˆÔØˆÔØˆŒá ”J˜t¤c¬5 \ÔˆDŒJàˆŒ
ØÔä Ô ØˆDŒHØÔð'+ˆŒð!%× 1Ñ 1°.Ó AˆÔôÔñ  4§:¢:ØŸ°.˜ÓAˆD$.ˆ?r,cóŽ|jr |jsy|jj|j«d|_yr")rTrUÚ _put_connr.s r)rzHTTPResponse.release_conns4ØzŠz ×!1Ò!1Øà
×јT׈Õr,cóª |j«|j
rt
«|_d|_yy#ttttf$rYŒ?wxYw)
Read and discard any remaining HTTP response data in the response connection.
Unread data in the HTTPResponse connection blocks the connection from being released back to the pool.
N) Ú _raw_readrÚOSErrorr
rrZr.s r)rzHTTPResponse.drain_connsRð  Ø N‰NÔ ð × $4Ó#5ˆDÔ Ø ˆD %øôœ7¤L´-Ð Ù ð ús6AÁAcóp|jr |jS|jr|jd¬«Sy)NT)r
)rNrPrr.s r)r'zHTTPResponse.data*s0ð :Š:Ø—:‘:Ð à 8Š8Ø—9‘9¨4 r,có|jSr")rUr.s r)rzHTTPResponse.connection5sà×ÑÐr,có,t|j«Sr")rrPr.s r)ÚisclosedzHTTPResponse.isclosed9sܘDŸH™HÓ%r,có|jS)
Obtain the number of bytes pulled over the wire so far. May differ from
the amount of content returned by :meth:`HTTPResponse.read`
if bytes are encoded on the wire (e.g, compressed).
)rRr.s r)ÚtellzHTTPResponse.tell<sð ×"r,cóê|jjd«}|~|jrtj d«y |j d«Dchc]
}t
|«Œ}}t|«dkDrtd|z«|j«}|dkrd}nd} t
|j«}|dvsd |cxkrd
ksn|d k(rd}|Scc}w#t$rd}YŒBwxYw#t$rd}YŒ=wxYw) zM
Set initial length value for Response content if available.
zcontent-lengthNzÒReceived response with both Content-Length and Transfer-Encoding set. This is expressly forbidden by RFC 7230 sec 3.3.2. Ignoring Content-Length and attempting to process response as Transfer-Encoding: chunked.r—rz8Content-Length contained multiple unmatching values (%s)r)éÌi0édéÈÚHEAD) ÚlogÚwarningr˜r7rir)r&r_Úcontent_lengthÚvalÚlengthsrŽs r)rXzHTTPResponse._init_lengthDsð
&*§\¡\×%5Ñ%5Ð6FÓ%Gˆà Ð |Š|ô ðôðð
0>×/CÑ/CÀCÓ/HÖœ3˜sIÐw“< 1Ø3AñBóððð˜A’:Ø!‘FðˆFð ܘŸÓ%ˆFð
  3¨&Ô#6°3Ô#6¸.ÈFÒ:R؈ˆ
ùò7Jøôò
Øð
ûôò ØŠFð ús6ÁCÁCÁ&.CÂC$ÃCÃ C!Ã C!Ã$ C2Ã1C2c#ó®Kd} dd}|sL|jr|jj«|jr|jj«|jr,|jj«r|j«yyy#t$r}t|jdd«|d}~wt$r}t |«|d}~wt
$rL}|j )|j|j |j k(rd}nd|}t||«|d}~wttf$r}td||«|d}~wwxYw#|sL|jr|jj«|jr|jj«|jr,|jj«r|j«wwwxYw­w)
Catch low-level python exceptions, instead re-raising urllib3
variants, so that low-level exceptions are not leaked in the
high-level api.
On exit, release the connection back to the pool.
FNzRead timed out.z!Response may not contain content.zConnection broken: T)Ú
SocketTimeoutrrTr
rrÚexpectedÚpartialrrrfrQrrUrjr)r&Ú
clean_exitr Úargs r)Ú_error_catcherzHTTPResponse._error_catcher|èø€ðˆ
ð1 $ð
KÛð6ˆJñð××
××$××&¨4×+BÑ+B×+KÑ+KÔ+MØ×,NÐ&øôY
Sô' t§z¡z°4Ð9JÓKÐQRÐRûäò
˜q“k (ûä
—J‘JП ™ П
 q§y¡y =¨uÐ5# C¨ÓÐ2ûä!¤7Ð
KÜ#Ð&9¸!¸Ð$?ÀÓÐJûð
Kûñð××
××$××&¨4×+BÑ+B×+KÑ+KÔ+MØ×,NÐ&üs_GBE
BGÂ EÂB5Â5 EÃ C
Ã
EÃAD Ä EÄ2EÅEÅE
Å
BGÇGrcó¼|jsJd}|r||kDs|€Ô|jrÈ|j|kDr¹tjr©|r|jj |«St j «}d}||dk7r_|t||«}||z}n|}|jj|«}|s |j«S|j|«~|ŒY|dk7rŒ_|j«S|r7||jj |«S|jj «S||jj|«S|jj«S)a†
Read a response with the thought that reading the number of bytes
larger than can fit in a 32-bit int at a time via SSL in some
known cases leads to an overflow error that has to be prevented
if `amt` or `self.length_remaining` indicate that a problem may
happen.
This happens to urllib3 injected with pyOpenSSL-backed SSL-support.
iÿÿÿir) rPrYr
Ú IS_PYOPENSSLrÚminr)r&r
rÚ c_int_maxr¹Ú
max_chunk_amtÚ chunk_amtr's r)Ú_fp_readzHTTPResponse._fp_readºs;ðxŠxˆˆx؈ á
S˜9’_à Ø××)¨IÒ×ÒÙØ—x‘x—~‘~ iÓ—ZZ“\ˆ"ˆMØ+ ¨¢Ø?Ü # C¨Ó 7˜9Ñ$Cà -—x‘x—}‘} YÓ/ÙØð—?‘?Ó  ˜TÔð‘+ ¨£ð—?‘?Ó
Ø*-¨/4—88—>>  O¸t¿x¹x¿~¹~Ó?OÐ *-¨4—88—== Ó M¸d¿h¹h¿m¹m»oÐ Mr,có¤|jyt|jdd«}|j«5|s|j||¬«nd}|h|dk7rc|sa|jj «|j
rv|j j|j dk7r[t|j|j «|r9|dk7r|r|j t|«k(r|jj «ddd«rH|xjt|«z
c_|j |xj t|«zc_|S#1swYŒUxYw)z7
Reads `amt` of bytes from the socket.
closedFr~r,r)
rPÚgetattrr}r…rrLrYrrRri)r&r
rÚ fp_closedr's r)rezHTTPResponse._raw_readïs$ð 8‰8Ð Øä˜DŸH™H h°Ó6ˆ à
×
Ñ
Ó
 !Ù:C4—== ¨EˆD؈ 3¨!¢8±DðÔ à×××Ò×)<Ñ)<¸d×>SÑ>SÓØ˜¡$¨4×+@Ñ+@ÄCÈÃIÒ+Mð Ô ÷= !ñ@ Ø × Ò ¤3 t£9Ñ Ø×רT«Ñˆ ÷I !ús µB=EÅEc óš|j«| |j}|r|dkrd}n·|µd}|jrt|jjr^t |j
«|krF|j
d|d|t |j
«z
¬«}|j
j|«t |j
«|k\r|j
j|«S|j|«}|sd|_
|duxs