U '7`@sddlZddlmZddlmZmZmZddlmZddl m Z m Z m Z m Z ddlmZddlmZmZdd lmZmZmZGd d d eeeeefZdS) N)suppress)AnyOptionalTuple) BaseProtocol) ClientOSErrorClientPayloadErrorServerDisconnectedErrorServerTimeoutError)BaseTimerContext)HttpResponseParserRawResponseMessage) EMPTY_PAYLOAD DataQueue StreamReaderc sPeZdZdZejddddZeedddZ eedd d Z ddd d Z ddd dZ edddZ eeddfdd ZddddZddfdd Zddfdd Zeddfdd ZeeddddZdddd dd!d"eeeeeeeedd#d$d%Zddd&d'Zddd(d)Zddd*d+Zedd,d-d.ZZ S)/ResponseHandlerz8Helper class to adapt between Protocol and StreamReader.N)loopreturncCsZtj||dt||d|_d|_d|_d|_d|_d|_d|_ d|_ d|_ d|_ dS)N)rF) r__init__r _should_close_payload _skip_payload_payload_parserZ_timer_tail _upgraded_parser _read_timeout_read_timeout_handle)selfrr!G/opt/alt/python38/lib64/python3.8/site-packages/aiohttp/client_proto.pyrs zResponseHandler.__init__)rcCs|jSN)rr r!r!r"upgraded'szResponseHandler.upgradedcCsV|jdk r|jr|jrdS|jpT|jpT|dk pT|jdk pTt|dkpTt|jS)NTr) ris_eofrrZ exceptionrlenboolrr$r!r!r" should_close+s  zResponseHandler.should_closecCs d|_dSNT)rr$r!r!r" force_close9szResponseHandler.force_closecCs.|j}|dk r*|d|_d|_|dSr#) transportcloser _drop_timeout)r r,r!r!r"r-<s zResponseHandler.closecCs|jdk o|j Sr#)r,Z is_closingr$r!r!r" is_connectedDszResponseHandler.is_connected)excrc s||jdk r0tt|jW5QRXd}|jdk r|z|j}Wn.tk rz|jdk rv|jtdYnX| st |t rt |j }|dkrt|}||d|_d|_d|_d|_d|_t|dS)Nz!Response payload is not completedTF)r.rr ExceptionZfeed_eofrr set_exceptionr r& isinstanceOSErrorrargsr rZ_reading_pausedsuperconnection_lost)r r0Z uncompleted __class__r!r"r7Gs2        zResponseHandler.connection_lostcCs |dSr#)r.r$r!r!r" eof_receivediszResponseHandler.eof_receivedcst|dSr#)r6 pause_readingr.r$r8r!r"r;ms zResponseHandler.pause_readingcst|dSr#)r6resume_reading_reschedule_timeoutr$r8r!r"r<qs zResponseHandler.resume_readingcsd|_|t|dSr*)rr.r6r2r r0r8r!r"r2uszResponseHandler.set_exception)parserpayloadrcCs6||_||_||jr2|jd}|_||dS)Nr)rrr.r data_received)r r?r@datar!r!r" set_parserzs zResponseHandler.set_parserFTi)timer skip_payloadread_until_eofauto_decompress read_timeout read_bufsize)rDrErFrGrHrIrc CsT||_||_|t||j||t| ||d|_|jrP|jd}|_||dS)N)rDZpayload_exceptionZresponse_with_bodyrFrGr) rrr=r _loopr rrrA)r rDrErFrGrHrIrBr!r!r"set_response_paramss  z#ResponseHandler.set_response_paramscCs|jdk r|jd|_dSr#)rcancelr$r!r!r"r.s  zResponseHandler._drop_timeoutcCs<|j}|jdk r|j|r2|j||j|_nd|_dSr#)rrrLrJZ call_later_on_read_timeout)r Ztimeoutr!r!r"r=s  z#ResponseHandler._reschedule_timeoutcCs,td}|||jdk r(|j|dS)Nz#Timeout on reading data from socket)r r2rr>r!r!r"rMs  z ResponseHandler._on_read_timeout)rBrc Csx||sdS|jdk rL|j|\}}|rHd|_d|_|rH||dS|js\|jdkrn|j|7_nz|j|\}}}WnFtk r}z(|j dk r|j | |WYdSd}~XYnX||_d}|D]P\}}|j rd|_ ||_|js|jdkr||tfdq|||fdq|dk rV|tk rN||jn||rt|rn||n||_dS)NT)i0r)r=rZ feed_datarrArrr BaseExceptionr,r-r2r)rrcoderZon_eofr.) r rBeoftailZmessagesr%r0r@messager!r!r"rAsJ         zResponseHandler.data_received)!__name__ __module__ __qualname____doc__asyncioZAbstractEventLooprpropertyr(r%r)r+r-r/rrOr7r:r;r<r2rrCr floatintrKr.r=rMbytesrA __classcell__r!r!r8r"rsD "  r)rX contextlibrtypingrrrZ base_protocolrZclient_exceptionsrr r r Zhelpersr Zhttpr rZstreamsrrrrr!r!r!r"s