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)rRrQrrTrrrrrrrrrrrrrrrqrrcCsf| dkrt} td||_|rJt|j}||}||j||}||_| d|_ | |_ | |_ | |_| |_d|_|dkrt}n|}||_|dk r|nt|_||_| rttd|_|| ||||||| ||!||"||#||||$||s<|j |j%krD|&|'| |dkr\g}||_(dS)Nr@r))rpZget_event_loopr_sessionrZqueryZ with_queryextend original_url with_fragmentrQupperrRrrrZlengthr=rr,_timer_ssl get_debug traceback extract_stacksys _getframe_source_tracebackupdate_version update_hostupdate_headersupdate_auto_headersupdate_cookiesupdate_content_encoding update_auth update_proxyupdate_body_from_data GET_METHODSupdate_transfer_encodingupdate_expect_continue_traces)rZrRrQrrTrrrrrrrrrrrrrrrqrrqZurl2Zreal_response_classrOrOrPrhsL                 zClientRequest.__init__rVcCs |jjdkS)N)ZhttpsZwss)rQschemerYrOrOrPrAszClientRequest.is_sslr;cCs|jSrX)rrYrOrOrPrqDszClientRequest.sslcCsL|j}|r&ttdd|D}nd}t|j|j||j|j |j |S)Ncss|]\}}||fVqdSrXrO).0kvrOrOrP Msz/ClientRequest.connection_key..) rhashtupleitemsrrjrkrrqrr)rZrhrOrOrPconnection_keyHszClientRequest.connection_keycCs |jj}|SrX)rQraw_host)rZZretrOrOrPrj[szClientRequest.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 D]*\}}||j krq||jkrq||j |<qdS)N)Z dispositionT)rzr'rZPAYLOAD_REGISTRYrd LookupErrorrrrrrTsizerMrr)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 sV|jdk r$|IdH|jIdH|j}zzjt|jtjrR|j|IdHn6t|jt t frl|jf|_|jD]}||IdHqr| IdHWnt k r}z,t |jd|j}||_||_||W5d}~XYndtjk r}z|js||W5d}~XYn.tk rD}z||W5d}~XYnXW5d|_XdS)z-Support coroutines that yields bytes objects.Nz!Can not write request body for %s)rZdrainprotocol_writerrzrrZPayloadwritern bytearrayZ write_eofOSErrorr"errnorQ __context__ __cause__ set_exceptionrpZCancelledErrorclosed Exception)rZrrrchunkexcnew_excrOrOrP write_bytes<s4     zClientRequest.write_bytes)rrWc s|jtjkr>|jj}t|r*d|d}|d|jj}n:|jrX| sXt |j}n |jj }|jj rx|d|jj 7}|j }t||jt|j|j|jd}|jr||j|jdk r||j|jkrtj|jkrtj|jkrd|jtj<|jtj}|s2|r"|jtkr2d}n|jt kr2d}|dk rH||jtj<d !|j||j}|"||jIdH|j#|$|||_%|j&}||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_CONNECTrQrrrrkrrrMZraw_pathZraw_query_stringrr3r functoolspartial_on_chunk_request_sentrZenable_compressionrZenable_chunking POST_METHODS CONTENT_TYPErrTrdrrrr1r2r}Z write_headersZ create_taskrrrrrrrrrresponse) rZrZ connect_hostpathrr connectionZ status_linerrOrOrPsendasx                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 rrrr 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 Cs||_t|_||_|d|_d|_||_||_d|_ d|_ ||_ |dk rP|nt |_ i|_||_||_| |_|rttd|_dS)NTrOr)rRrr _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|jjSrX)rrjrYrOrOrPrjszClientResponse.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)rZrkwargscontextrOrOrP__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_strrr6ZparamrrlrrOrOrPr<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.FNr1r!rTdeTrOz!Can not load response cookies: %s)!rrZ _protocolr"rreadrZHttpProcessingErrorr#rr5coder!rTrr/Zon_eof _response_eofrr1r.rrrcontentr8rZ SET_COOKIErrrr4Zwarning)rZrr!rrrrOrOrPstartpsD   "zClientResponse.startcCsP|jr dS|jdk r>|jjdk r.|jjjr.dS|jd|_d|_|dSNT)rr"rZupgradedr#r$rYrOrOrPrCs   zClientResponse._response_eofcCs|jSrX)rrYrOrOrPrszClientResponse.closedcCs\|js||jrdSd|_|jdks2|jr6dS|jdk rP|jd|_|dSrF) _released_notify_contentrrr r"rr$rYrOrOrPrs  zClientResponse.closecCsH|js||jrtSd|_|jdk r:|jd|_|tSrF)rGrHrr-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.okcCs2d|jkr.|t|j|j|j|j|jddS)Nir=)r1r#r#rr5r.rTrYrOrOrPrIs zClientResponse.raise_for_statuscCs$|jdk r|jd|_d|_dSrX)rr rrYrOrOrPr$s  zClientResponse._cleanup_writercCs.|j}|r$|dkr$|tdd|_dS)NConnection closedT)rDZ exceptionrr!rG)rZrDrOrOrPrHszClientResponse._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.NrK) rrDrArZsend_response_chunk_receivedrRrQ BaseExceptionrrGr!)rZr rOrOrPrAs   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)rZctypeZmimetyperPrOrOrP get_encodings.     zClientResponse.get_encodingstrict)rPerrorsrWcs8|jdkr|IdH|dkr(|}|jj||dS)z!Read response payload and decode.N)rX)rrArVr/)rZrPrXrOrOrPtext1s  zClientResponse.textr)rPloads content_type)rPrZr[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)rrArTrdrrrrr$rr5rrVr/)rZrPrZr[rUstrippedrOrOrPrO;s"   zClientResponse.jsoncs|SrXrOrYrOrOrP __aenter__[szClientResponse.__aenter__)exc_typeexc_valexc_tbrWcs |dSrX)r#)rZr^r_r`rOrOrP __aexit__^s zClientResponse.__aexit__)NrW)ArJrKrLrr1r.rDrrr"rrrGrMrrr)r>rrprrhr.rQrrUrjrTr:rrrFrrwr r(r4rorrr5r<rErCrrrr#rJrIr$rHrLrnrArVrYr6r7rOr]rrMr rarOrOrOrPr=s # #2     r=)krprQrr,r9rrrwZhashlibrrrZ 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; ImportErrorobjectZcchardetrT__all__Zclientr@Z connectorrAtracingrBcompilersrFr>r?rrGr{rnr~rrMrr<r=rOrOrOrPs4    (          "  5  h