U '7`W @s8ddlZddlZddlZddlZddlZddlZddlZddlZddlm Z m Z m Z ddl m Z mZmZddlmZmZddlmZmZmZmZmZmZmZmZmZmZmZddlZddl m!Z!m"Z"m#Z#m$Z$ddl%m&Z&dd l'm(Z(m)Z)m*Z*m+Z+m,Z,dd l-m.Z.dd l/m0Z0m1Z1m2Z2m3Z3m4Z4m5Z5dd l6m7Z7dd l)m8Z8m9Z9m:Z:m;Z;mZ>m?Z?ddl*m@Z@mAZAmBZBmCZCddlDmEZEddlFmGZGddlHmIZImJZJmKZKmLZLmMZMzddlNZNddlNmOZOWnePk rdZNeQZOYnXz ddlRZSWnePk rddlSZSYnXdZTer2ddlUmVZVddlWmXZXddlYmZZZe[dZ\ej]ddddGdddZ^ej]ddddGdddZ_GdddZ`eNdk reNjOeae`ebdfZcnebdZced eae`dfeeaed eeded eae`dfd!d"d#Zeej]dddd$Gd%d&d&Zfegegead'd(d)ZhGd*d+d+ZiGd,d-d-e;ZjdS).N)md5sha1sha256) CookieErrorMorsel SimpleCookie)MappingProxyType TracebackType) TYPE_CHECKINGAnyDictIterableListMappingOptionalTupleTypeUnioncast) CIMultiDictCIMultiDictProxy MultiDictMultiDictProxy)URL)hdrshelpershttp multipartpayload)AbstractStreamWriter)ClientConnectionError ClientOSErrorClientResponseErrorContentTypeError InvalidURLServerFingerprintMismatch)FormData)PY_36BaseTimerContext BasicAuth HeadersMixin TimerNoopnoopreify set_result)SERVER_SOFTWARE HttpVersion10 HttpVersion11 StreamWriter) client_logger) StreamReader)DEFAULT_JSON_DECODER JSONDecoder LooseCookies LooseHeaders RawHeaders) SSLContext) ClientRequestClientResponse RequestInfo Fingerprint) ClientSession) Connection)Tracez!^application/(?:[\w.+-]+?\+)?jsonT) auto_attribsfrozenslotsc@s.eZdZUeeed<ded<eeed<dS)ContentDispositiontypezMappingProxyType[str, str] parametersfilenameN)__name__ __module__ __qualname__rstr__annotations__rOrOH/opt/alt/python38/lib64/python3.8/site-packages/aiohttp/client_reqrep.pyrFWs  rFc@sJeZdZUeed<eed<ded<eZeed<ej edddZ d S) r>urlmethodCIMultiDictProxy[str]headersreal_urlreturncCs|jSN)rQselfrOrOrPreal_url_defaulteszRequestInfo.real_url_defaultN) rJrKrLrrNrMattrZibrUdefaultr[rOrOrOrPr>^s r>c@sLeZdZeeedZeddddZe edddZ e j dd d d Z dS) r?) N) fingerprintrWcCsJt|}|j|}|s"tdn|tks2|tkr:td||_||_dS)Nzfingerprint has invalid lengthz8md5 and sha1 are insecure and not supported. Use sha256.)lenHASHFUNC_BY_DIGESTLENget ValueErrorrr _hashfunc _fingerprint)rZraZ digestlenZhashfuncrOrOrP__init__qs  zFingerprint.__init__rVcCs|jSrX)rgrYrOrOrPra}szFingerprint.fingerprint) transportrWcCs`|dsdS|d}|jdd}||}||jkr\|d^}}}t|j|||dS)NZ sslcontextZ ssl_objectT)Z binary_formZpeername)Zget_extra_infoZ getpeercertrfZdigestrgr&)rZriZsslobjZcertZgothostport_rOrOrPchecks    zFingerprint.check)rJrKrLrrrrcbytesrhpropertyraasyncioZ TransportrmrOrOrOrPr?js r?r;)ssl verify_ssl ssl_contextrarWcCs|dk r2|s2tjdtdd|dk r.tdnd}|dk r`tjdtdd|dk r\tdn|}|dk rtjdtdd|dk rtdnt|}t|tstd||S) Nz/verify_ssl is deprecated, use ssl=False instead stacklevelzNverify_ssl, ssl_context, fingerprint and ssl parameters are mutually exclusiveFz2ssl_context is deprecated, use ssl=context insteadzCfingerprint is deprecated, use ssl=Fingerprint(fingerprint) insteadzFssl should be SSLContext, bool, Fingerprint or None, got {!r} instead.) warningswarnDeprecationWarningrer? isinstanceSSL_ALLOWED_TYPES TypeErrorformat)rqrrrsrarOrOrP_merge_ssl_paramssP  r~)rCrErDc@sbeZdZUeed<eeed<eed<ee dee fed<ee ed<ee ed<eeed<dS) ConnectionKeyrjrkis_sslNrqproxy proxy_authZproxy_headers_hash) rJrKrLrMrNrintboolrr;r?rr*rOrOrOrPrs    r)response_content_typeexpected_content_typerWcCs|dkrt|dk S||kS)Napplication/json)json_rematch)rrrOrOrP_is_expected_content_typesrc@seZdZejejejejhZej ej ej hZ e e  ejhZejdejdiZdZdZdZdZdZddedddejdddddddddddddeeeeeefeee ee!ee"ee#ej$eeee%e%ee&j'ee(deeee#ee)ede*e+e%e,dfeeee-d d d d Z.e%d ddZ/e0e*dde%e,fd ddZ1e0e2d ddZ3e0ed ddZ4e0ee5d ddZ6e0e7d ddZ8eddddZ9e*ej$efdddd Z:eedd!d"d#Z;e edd$d%d&Zdd d-d.Z?ee#dd/d0d1Z@e!dd2d3d4ZAdKe%dd5d6d7ZBeeee#eedd8d9d:ZCe%d d;d<ZDeEd=dd>d?d@ZFd=ddAdBdCZGdd dDdEZHdd dFdGZIeeeJddHdIdJZKdS)Lr<z*/*z gzip, deflateNF)paramsrTskip_auto_headersdatacookiesauthversioncompresschunked expect100loopresponse_classrrtimersessionrq proxy_headerstracesr=r@rB)rRrQrrTrrrrrrrrrrrrrrrqrrcCs| dkrt} t|ts"t|t|ttdfsMsz/ClientRequest.connection_key..) rhashtupleitemsrrjrkrrqrr)rZrhrOrOrPconnection_keyHszClientRequest.connection_keycCs|jj}|dk st|SrX)rQraw_hostr)rZZretrOrOrPrj[s zClientRequest.hostcCs|jjSrX)rQrkrYrOrOrPrkaszClientRequest.portcCst|j}t|j|j||jSrX)rrTr>rQrRr)rZrTrOrOrP request_infoes zClientRequest.request_info)rQrWcCs6|jst||j|j}}|r2t||p,d|_dS)z8Update destination host, port and connection type (ssl).N)rr%userpasswordrr*r)rZrQZusernamerrOrOrPrjs zClientRequest.update_host)rrWcCspt|trfdd|ddD}z tt|dt|d}Wn$tk rdtd|dYnX||_dS)zdConvert request version to two elements tuple. parser HTTP version '1.1' => (1, 1) cSsg|] }|qSrO)strip)rpartrOrOrP {sz0ClientRequest.update_version...rrz#Can not parse http version number: N)rzrMsplitr HttpVersionrrer)rZrrrOrOrPrus  zClientRequest.update_version)rTrWcCst|_tt|jj}t|r,d|d}|jjdk rV|j sV|dt|jj7}||jt j <|rt |t ttfr~|}|D].\}}|dkr||j|<q|j||qdS)zUpdate request headers.[]N:rj)rrTrrMrQrris_ipv6_addressrkZis_default_portrZHOSTrzdictrrrloweradd)rZrTZnetlockeyvaluerOrOrPrs      zClientRequest.update_headers)rrWcCsrtddt|D|_|j}||j|jD]\}}||kr8|j||q8t j |krnt |jt j <dS)Ncss|]}|dfVqdSrXrO)rhdrrOrOrPrsz4ClientRequest.update_auto_headers..) rsortedrrTcopyrDEFAULT_HEADERSrrrZ USER_AGENTr0)rZrZ used_headersrvalrOrOrPrs    z!ClientRequest.update_auto_headers)rrWcCs|sdSt}tj|jkr:||jtjd|jtj=t|trN|}n|}|D]H\}}t|t r||j t }| |j |j |j |||<qV|||<qV|jddd|jtj<dS)zUpdate request cookies header.Nr;)headersep)rrZCOOKIErTloadrdrzrrrrsetrZ coded_valueoutputr)rZrcZ iter_cookiesnamerZmrsl_valrOrOrPrs         zClientRequest.update_cookies)rrWcCs`|sdS|jtjd}|r0|jr\tdn,|jr\t|jtsHd|_|j|jtj<d|_ dS)zSet request content encoding.Nrz9compress can not be set if Content-Encoding header is setZdeflateT) rTrdrZCONTENT_ENCODINGrrrerzrMr)rZrencrOrOrPrs z%ClientRequest.update_content_encodingcCsz|jtjd}d|kr,|jrvtdnJ|jrTtj|jkrFtdd|jtj<n"tj|jkrvtt |j |jtj<dS)z!Analyze transfer-encoding header.rrzDchunked can not be set if "Transfer-Encoding: chunked" header is setz6chunked can not be set if Content-Length header is setN) rTrdrZTRANSFER_ENCODINGrrreCONTENT_LENGTHrMrbbody)rZZterOrOrPrs  z&ClientRequest.update_transfer_encoding)rrWcCsB|dkr|j}|dkrdSt|tjs.td||jtj<dS)zSet basic auth.Nz%BasicAuth() tuple is required instead) rrzrr*r|encoderTrZ AUTHORIZATION)rZrrOrOrPrs zClientRequest.update_auth)rrWcCs|sdSt|tr|}ztjj|dd}Wn tjk rLt|}YnX||_|jstj |j kr|j }|dkr|d|_ntj |j krt ||j tj <|j st |j D]*\}}||j krq||jkrq||j |<qdS)N)Z dispositionT)rzr'rZPAYLOAD_REGISTRYrd LookupErrorrrrrrTsizerMrrr)rZrrrrrOrOrPrs.      z#ClientRequest.update_body_from_data)expectrWcCsB|rd|jtj<n|jtjddkr.d}|r>|j|_dS)Nz 100-continuerT)rTrZEXPECTrdrrZ create_future _continue)rZrrOrOrPrs z$ClientRequest.update_expect_continue)rrrrWcCsD|r|jdkstd|r.t|tjs.td||_||_||_dS)NrzOnly http proxies are supportedz,proxy_auth must be None or BasicAuth() tuple)rrerzrr*rrr)rZrrrrOrOrPr szClientRequest.update_proxycCsN|jtkrdS|jtkr4|jtjdkr.dSdSn|jtjdkrJdSdS)NF keep-aliveTclose)rr1rTrdr CONNECTIONrYrOrOrP keep_alive.s  zClientRequest.keep_aliverA)writerconnrWc sb|jdk r$|IdH|jIdH|j}|dk s6tzzjt|jtjr^|j |IdHn6t|jt t frx|jf|_|jD]}| |IdHq~| IdHWnt k r}z,t|jd|j}||_||_||W5d}~XYndtjk r$}z|js||W5d}~XYn.tk rP}z||W5d}~XYnXW5d|_XdS)z-Support coroutines that yields bytes objects.Nz!Can not write request body for %s)rZdrainprotocolr_writerrzrrZPayloadwritern bytearrayZ write_eofOSErrorr"errnorQ __context__ __cause__ set_exceptionrpZCancelledErrorclosed Exception)rZrrrchunkexcnew_excrOrOrP write_bytes<s6      zClientRequest.write_bytes)rrWc s|jtjkrJ|jj}|dk s tt|r6d|d}|d|jj}n:|j rd| sdt |j}n |jj }|jj r|d|jj 7}|j}|dk stt||jt|j|j|jd}|jr||j|jdk r||j|jkrtj|jkrtj|jkrd|jtj<|jtj}|sP|r@|jt krPd}n|jt!krPd}|dk rf||jtj<d "|j||j}|#||jIdH|j$|%|||_&|j'}|dk st||j|j(|j&|j)|j*|j+|j,|j|j-d |_.|j.S) Nrrr?)Z on_chunk_sentzapplication/octet-streamrrz{0} {1} HTTP/{2[0]}.{2[1]})r continue100rrrrr)/rRrZ METH_CONNECTrQrrrrrkrrrMZraw_pathZraw_query_stringrr3r functoolspartial_on_chunk_request_sentrZenable_compressionrZenable_chunking POST_METHODS CONTENT_TYPErrTrdrrrr1r2r}Z write_headersZ create_taskrrrrrrrrrresponse) rZrZ connect_hostpathrr connectionZ status_linerrOrOrPsendas~                  zClientRequest.sendcs(|jdk r$z|jIdHW5d|_XdSrX)rrYrOrOrPrs zClientRequest.closecCs(|jdk r$|js|jd|_dSrX)rr is_closedcancelrYrOrOrP terminates   zClientRequest.terminate)rRrQrrWcs$|jD]}||||IdHqdSrX)rZsend_request_chunk_sent)rZrRrQrtracerOrOrPrs z$ClientRequest._on_chunk_request_sent)F)LrJrKrLrZMETH_GETZ METH_HEADZ METH_OPTIONSZ METH_TRACErZ METH_PATCHZ METH_POSTZMETH_PUTrunionZ METH_DELETEZ ALL_METHODSZACCEPTZACCEPT_ENCODINGrrrrrr frozensetrr2rMrrrr9r r r8r*rrrpAbstractEventLooprr)rr;r?rrhrrorqrrrjrrkr>rrrrrrrrrrrrrr rr rr rnrrOrOrOrPr<s   J  "   %Nr<c @steZdZdZdZdZdZdZdZdZ dZ dZ dZ e ededeeedejddd d d Zeed d d Zeed ddZeed ddZee d ddZedd ddZeed ddZeed ddZeeed ddZ e!fe"ddddZ#e d d d!Z$e%ed"d d#d$Z&ee'd%d d&d'Z(ed(d d)d*Z)d"dd+d,d-Z*dd d.d/Z+e%e,d d0d1Z-dd d2d3Z.e"d d4d5Z/e%e,d d6d7Z0dd d8d9Z1dd d:d;Z2dd dd?Z4e5d d@dAZ6e d dBdCZ7dRee e e dEdFdGZ8de9dHdIee e:ee e"dJdKdLZ;dd dMdNZee>ee?ddOdPdQZ@dS)Sr=NTFzasyncio.Task[None]zasyncio.Future[bool]rBr@) rRrQrrrrrrrrWc Cst|tst||_t|_||_|d|_d|_ ||_ ||_ d|_ d|_ ||_|dk r^|nt|_i|_||_||_| |_|rttd|_dS)NTrOr)rzrrrRrr _real_urlr_url_bodyrr_closed_history _request_infor,r_cacher_looprrrrrrr) rZrRrQrrrrrrrrOrOrPrhs$  zClientResponse.__init__rVcCs|jSrX)rrYrOrOrPrQszClientResponse.urlcCstjdtdd|jS)NzDeprecated, use .url #1654ru)rwrxryrrYrOrOrPurl_objszClientResponse.url_objcCs|jSrX)rrYrOrOrPrUszClientResponse.real_urlcCs|jjdk st|jjSrX)rrjrrYrOrOrPrjszClientResponse.hostrScCs|jSrX)_headersrYrOrOrPrTszClientResponse.headerscCs|jSrX) _raw_headersrYrOrOrP raw_headers szClientResponse.raw_headerscCs|jSrX)rrYrOrOrPrszClientResponse.request_infocCsF|jtj}|dkrdSt|\}}t|}t|}t|||SrX) rrdrZCONTENT_DISPOSITIONrZparse_content_dispositionrZcontent_disposition_filenamerF)rZrawZdisposition_typeZ params_dctrrIrOrOrPcontent_dispositions z"ClientResponse.content_disposition) _warningsrWcCs|jr dS|jdk r~|j||jr~tr>d|i}ni}|jd|tf||dd}|j rr|j |d<|j |dS)NsourcezUnclosed response zUnclosed response)Zclient_responsemessageZsource_traceback) r _connectionrelease_cleanup_writerrrr(rxResourceWarningrZcall_exception_handler)rZr kwargscontextrOrOrP__del__s      zClientResponse.__del__cCsbt}t|j}|jr.|jddd}n|j}td||j ||dt|j |d| S)Nasciibackslashreplacez)file) ioStringIOrMrQreasonrdecodeprintr}statusrTgetvalue)rZoutZascii_encodable_urlZascii_encodable_reasonrOrOrP__repr__1s( zClientResponse.__repr__rAcCs|jSrX)r#rYrOrOrPrCszClientResponse.connection)r=.cCs|jS)z2A sequence of of responses, if redirects occurred.)rrYrOrOrPhistoryGszClientResponse.historyz/MultiDictProxy[MultiDictProxy[Union[str, URL]]]c Csd|jdg}|s"ttSt}td|D]}td|}|dkrNq4|\}}|ddd}t}|D]:} td| tj }|dkrqv|\} } } } | | | qv| d|} | d |j t || | t|q4t|S) Nz, linkz ,(?=\s*<)z \s*<(.*)>(.*)rrz%^\s*(\S*)\s*=\s*(['\"]?)(.*?)(\2)\s*$ZrelrQ)joinrTgetallrrrerrgroupsMrrdrQr) rZZ links_strlinksrrrQZ params_strrr7ZparamrrlrrOrOrPr=Ls*    zClientResponse.links)rrWc sXd|_|j|_||_|jz|jIdH\}}WnBtjk rv}z"t|j |j |j |j |j d|W5d}~XYnX|j dks|j dks|j dkrq|jdk rt|jdd|_qW5QRX||j|j|_|j |_|j|_|j |_|j|_||_|j tjdD]H}z|j|Wn0tk rN}zt d |W5d}~XYnXq |S) zStart response processing.FNr2r"rTdeTrOz!Can not load response cookies: %s)!rrZ _protocolr#rreadrZHttpProcessingErrorr#rr6coder"rTrr/Zon_eof _response_eofrr2r/rrrcontentr9rZ SET_COOKIErrrr4Zwarning)rZrr"rrrrOrOrPstartpsD   "zClientResponse.startcCsP|jr dS|jdk r>|jjdk r.|jjjr.dS|jd|_d|_|dSNT)rr#rZupgradedr$r%rYrOrOrPrDs   zClientResponse._response_eofcCs|jSrX)rrYrOrOrPrszClientResponse.closedcCs\|js||jrdSd|_|jdks2|jr6dS|jdk rP|jd|_|dSrG) _released_notify_contentrrr r#rr%rYrOrOrPrs  zClientResponse.closecCsH|js||jrtSd|_|jdk r:|jd|_|tSrG)rHrIrr-r#r$r%rYrOrOrPr$s  zClientResponse.releasecCs(z |Wntk r"YdSXdS)zReturns ``True`` if ``status`` is less than ``400``, ``False`` if not. This is **not** a check for ``200 OK`` but a check that the response status is under 400. FT)raise_for_statusr#rYrOrOrPoks  zClientResponse.okcCs@d|jkr<|jdk st|t|j|j|j|j|jddS)Nir>)r2r/rr$r#rr6rTrYrOrOrPrJs zClientResponse.raise_for_statuscCs$|jdk r|jd|_d|_dSrX)rr rrYrOrOrPr%s  zClientResponse._cleanup_writercCs.|j}|r$|dkr$|tdd|_dS)NConnection closedT)rEZ exceptionrr!rH)rZrErOrOrPrIszClientResponse._notify_contentcs0|jdk r$z|jIdHW5d|_X|dSrX)rr$rYrOrOrPwait_for_closes  zClientResponse.wait_for_closecs||jdkrhz<|jIdH|_|jD]}||j|j|jIdHq$Wqvtk rd|YqvXn|j rvt d|jS)zRead response payload.NrL) rrErBrZsend_response_chunk_receivedrRrQ BaseExceptionrrHr!)rZr rOrOrPrBs   zClientResponse.readcCs|jtjd}t|}|jd}|rVzt |Wnt k rTd}YnX|s|j dkr~|j dksx|j dkr~d}n$|j dkrtdnt|j d}|sd}|S) NrcharsetZ applicationjsonZrdapzutf-8z0Cannot guess the encoding of a not yet read bodyencoding)rTrdrrrrZparse_mimetyperHcodecslookuprrGZsubtyper RuntimeErrorchardetZdetect)rZctypeZmimetyperQrOrOrP get_encodings.     zClientResponse.get_encodingstrict)rQerrorsrWcs8|jdkr|IdH|dkr(|}|jj||dS)z!Read response payload and decode.N)rY)rrBrWr0)rZrQrYrOrOrPtext1s  zClientResponse.textr)rQloads content_type)rQr[r\rWcs|jdkr|IdH|rT|jtjd}t||sTt|j |j d||jd|j }|sfdS|dkrv| }|| |S)zRead and decodes JSON response.Nrz3Attempt to decode JSON with unexpected mimetype: %s)r"rT)rrBrTrdrrrrr$rr6rrWr0)rZrQr[r\rVstrippedrOrOrPrP;s"   zClientResponse.jsoncs|SrXrOrYrOrOrP __aenter__[szClientResponse.__aenter__)exc_typeexc_valexc_tbrWcs |dSrX)r$)rZr_r`rarOrOrP __aexit__^s zClientResponse.__aexit__)NrX)ArJrKrLrr2r/rErrr#rrrHrMrrr)r>rrprrhr.rQrrUrjrTr:rrrFrrwr r)r5rorrr6r=rFrDrrrr$rKrJr%rIrMrnrBrWrZr6r7rPr^rrNr rbrOrOrOrPr=s # #2     r=)krprRrr-r:rrrwZhashlibrrrZ http.cookiesrrrtypesrr typingr r r r rrrrrrrr\Z multidictrrrrZyarlrrrrrrrabcr Zclient_exceptionsr!r"r#r$r%r&Zformdatar'r(r)r*r+r,r-r.r/r0r1r2r3logr4Zstreamsr5Ztypedefsr6r7r8r9r:rqr; ImportErrorobjectZcchardetrU__all__Zclientr@Z connectorrAtracingrBcompilersrFr>r?rrGr{rnr~rrMrr<r=rOrOrOrPs4    (          "  5  h