wceF5UdZddlZddlZddlZddlZddlZddlZddlZddlZddl m Z ddl m Z m Z ddlmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZm Z m!Z!ddl"Z"ddl#m$Z$m%Z%m&Z&m'Z'ddl(m)Z)dd l*m+Z+m,Z,m-Z-dd l.m/Z/dd l0m1Z1m2Z2m3Z3m4Z4m5Z5m6Z6m7Z7m8Z8m9Z9m:Z:m;Z;mZ>m?Z?m@Z@mAZAmBZBmCZCdd lDmEZEmFZFmGZGmHZHmIZIdd lJmKZKddlLmMZMmNZNmOZOmPZPddlQmRZRddlSmTZTmUZUmVZVmWZWmXZXmYZYmZZZm[Z[m\Z\m]Z]ddl,m^Z^m_Z_m`Z`maZaddlbmcZcmdZdmeZemfZfddlgmhZhddlimjZjmkZkddllmmZmmnZnmoZompZpdZqerddlrmsZsndZse"jdddGddZueudZveeuewd<e dZxeeFeygezfZ{Gd d!Z|Gd"d#eeeexfeexZ}Gd$d%e}eFZ~Gd&d'e}eKZGd(d)Zdddddddd*ddd+dddde\de,jdddd,d,d-d.ezd/epd0eeezezfd1ed2ed3eeod4eeezd5eeVd6ed7ed8eezd9eed:ed;eedeeVd?e!euefd@eendAe_dBeeMdCeedDeej dEedFedGef4dHZy)IzHTTP Client for asyncio.N)suppress)SimpleNamespace TracebackType) TYPE_CHECKINGAny AwaitableCallable CoroutineFinal FrozenSet GeneratorGenericIterableListLiteralMappingOptionalSetTupleTypeTypeVarUnion) CIMultiDict MultiDictMultiDictProxyistr)URL)hdrshttppayload)AbstractCookieJar)ClientConnectionErrorClientConnectorCertificateErrorClientConnectorErrorClientConnectorSSLError ClientErrorClientHttpProxyError ClientOSErrorClientPayloadErrorClientProxyConnectionErrorClientResponseErrorClientSSLErrorContentTypeError InvalidURLServerConnectionErrorServerDisconnectedErrorServerFingerprintMismatchServerTimeoutErrorTooManyRedirectsWSServerHandshakeError) ClientRequestClientResponse Fingerprint RequestInfo_merge_ssl_params)ClientWebSocketResponse) BaseConnectorNamedPipeConnector TCPConnector UnixConnector) CookieJar) _SENTINELDEBUG BasicAuth TimeoutHandle ceil_timeoutget_env_proxy_for_urlget_running_loopmethod_must_be_empty_bodysentinelstrip_auth_from_url)WS_KEY HttpVersionWebSocketReaderWebSocketWriter)WSHandshakeError WSMessage ws_ext_gen ws_ext_parse)FlowControlDataQueue)Trace TraceConfig) JSONEncoder LooseCookies LooseHeadersStrOrURL)r#r$r%r&r'r(r)r*r+r,r-r.r/r0r1r2r3r4r5r6r7r8r9r<r>r?r=r; ClientSession ClientTimeoutrequest) SSLContextT) auto_attribsfrozenslotscleZdZUdZeeed<dZeeed<dZeeed<dZ eeed<dZ eed<y)r[Ntotalconnect sock_read sock_connectceil_threshold) __name__ __module__ __qualname__rbrfloat__annotations__rcrdrerg0/usr/lib/python3/dist-packages/aiohttp/client.pyr[r[sD!E8E?!#GXe_#!%Ix%$(L(5/(NErnr[i,rbDEFAULT_TIMEOUT_RetTypec?" eZdZUdZegdZdZeeje d<dZ ee e d< ddddddde jeeeej&dddededddddd d d d d eed ee deej.deedeedeeedeededeedeedeededee de!de"e!e#ege$dffde"e%e&fdee%de"e'e(fde!de!d e!d!ee)e*d"e+d#e+d$e+d%e,d&df6d'Z-d(edd&dfd)Z.e/r d*ed+e0d&dffd, Z1e2fd-e0d&dfd.Z3d/ed0ed1e0d&d2fd3Z4d4ed&e5fd5Z6ddddddddd6dddddddedddddddddddd7d/ed4ed8ee7eefd9e0d:e0deedeedeeedeed;e!dee!d?e!de"de!e#ege$dffd@e!dAeedBeede"e(e&fdCee!dDee8dEee9dFee"e9e:de;fdGeedHeedIee<d"ee+dee!d#ee+d$ee+d&ef>dJZ=e>j~dKdLddddddddddddddddMdNdOd0ed/edPeede%dQee%dRe!dSe!dTee%deedUeed8ee7eefdeedAeedBeedFe"e9e:dde;fdCee!dDee8dEee9dHeed=e+dVe+d&dWf,dXZ@e>j~dKdLddddddddddddddddMdNdOd0ed/edPeede%dQee%dRe!dSe!dTee%deedUeed8ee7eefdeedAeedBeedFe"e9e:dde;fdCee!dDee8dEee9dHeed=e+dVe+d&ef,dYZAdeed&dZfd[ZBdd\d0ed;e!d1e0d&d2fd]ZCdd\d0ed;e!d1e0d&d2fd^ZDdd\d0ed;e!d1e0d&d2fd_ZEdd`d0ed9e0d1e0d&d2fdaZFdd`d0ed9e0d1e0d&d2fdbZGdd`d0ed9e0d1e0d&d2fdcZHd0ed1e0d&d2fddZIddeZJeKd&e!fdfZLeKd&ee fdgZMeKd&e fdhZNeKd&eOe+e+ffdiZPeKd&e!fdjZQeQjd+e!d&dfdkZQeKd&ej.fdlZSeKd&e(fdmZTeKddnZUeKd&eVeWfdoZXeKd&eefdpZYeKd&efdqZZeKd&e!fdrZ[eKd&e"e!e#ege$dfffdsZ\eKd&e!fdtZ]eKd&e!fduZ^eKd&e)e*fdvZ_ddwZ`ddxZadyeeebdzeebd{eecd&dfd|Zddd}Zedyeeebdzeebd{eecd&dfd~ZfxZgS)rZz/First-class interface for making HTTP requests.) _base_url_source_traceback _connectorrequote_redirect_url_loop _cookie_jar_connector_owner _default_auth_version_json_serialize_requote_redirect_url_timeout_raise_for_status_auto_decompress _trust_env_default_headers_skip_auto_headers_request_class_response_class_ws_response_class_trace_configs _read_bufsize_max_line_size_max_field_size_resolve_charsetNrurvTFcy)Nzutf-8rm)rbs rozClientSession.srn) connectorloopcookiesheadersskip_auto_headersauthjson_serialize request_classresponse_classws_response_classversion cookie_jarconnector_ownerraise_for_status read_timeout conn_timeouttimeoutauto_decompress trust_envrw trace_configs read_bufsize max_line_sizemax_field_sizefallback_charset_resolverbase_urlrrrrrrrrrrrrrrrrrrrrwrrrrrreturnc~|| |j}t|}|t|tr||_n>t||_|jj |jk(sJd| t |}|j|ur td||_|jr-tjtjd|_ | t|} | |_||jj!|||_||_||_| |_||_|t,urt.|_|t,urBt3j4dt6dt9j:|j0||_|jt9j:|j0| |_t3j4d t6dn'||_|t,ur t=d | t=d ||_||_ ||_!||_"||_#||_$||_%|r tM|}n tM}||_'|tQd |D|_)ntQ|_)| |_*| |_+| |_,|xsg|_-|jZD]}|j]||_/y)Nz2Only absolute URLs without path part are supportedrz0Session and connector has to use same event looprz8read_timeout is deprecated, use timeout argument instead stacklevelrp)rcz8conn_timeout is deprecated, use timeout argument insteadzGread_timeout and timeout parameters conflict, please setup timeout.readzJconn_timeout and timeout parameters conflict, please setup timeout.connectc32K|]}t|ywN)r).0is ro z)ClientSession.__init__..@s/SAQ/Ss)0rxrG isinstancerrtoriginr> RuntimeError get_debug traceback extract_stacksys _getframerur@ryupdate_cookiesrvrzr{r|r}rIrqrwarningswarnDeprecationWarningattrevolve ValueErrorrrrr~rrrrr frozensetrrrrrfreezer)selfrrrrrrrrrrrrrrrrrrrrrwrrrrr real_headers trace_configs ro__init__zClientSession.__init__s@ <$ %  z(C8,4DN ]DN%%'4>>9 DC D9  $$/I ??$ &QR R >> %.%<%  (&//SAR/S&SD #&/kD #+-"3+1r // "L    ! "!:rnclscntjdj|jtdy)Nz6Inheritance class {} from ClientSession is discouragedrr)rrformatrhr)rs ro__init_subclass__zClientSession.__init_subclass__Ns'  #VCLL1   rnnamevalc||jvr+tjdj|tdt |||y)Nz8Setting custom ClientSession.{} attribute is discouragedrr)ATTRSrrrrsuper __setattr__)rrr __class__s rorzClientSession.__setattr__Xs@4::% %%+VD\&  G c *rn _warningsc|js[d|i}|jd|tfi||dd}|j|j|d<|jj |yy)NsourcezUnclosed client session zUnclosed client session)client_sessionmessagesource_traceback)closedrResourceWarningrurxcall_exception_handler)rrkwargscontexts ro__del__zClientSession.__del__bsv{{%F INN*4(3_ HN *.:STG%%1.2.D.D*+ JJ - -g 6rnmethodurlr_RequestContextManagerc <t|j||fi|S)zPerform HTTP request.)r_request)rrrrs ror\zClientSession.requestms!&mdmmFC&J6&JKKrn str_or_urlct|}|j|S|js|jj dsJ|jj |S)N/)rrt is_absolutepath startswithjoin)rrrs ro _build_urlzClientSession._build_urlssP*o >> !J(SXX-@-@-E EE>>&&s+ +rn )paramsdatajsonrrrrallow_redirects max_redirectscompresschunked expect100rread_until_eofproxy proxy_authr verify_ssl fingerprint ssl_contextsslserver_hostname proxy_headerstrace_request_ctxrrrrrrrrrrrrrrrrrrrrrrc>K|jr tdt||||}| | td|!t j ||j }t| ts| tjdtd}g} |j}!|xsi}|j|}|j|} |j|}"t!|j"}$|!|D]}%|$j%t'|%| t)|}|t*ur |j,}&nt|t.s t/|}&n|}&t1|j2|&j4|&j6}'|'j9}(| |j:}| |j<}| |j>}| |j@}|jBD)cgc]})tE||)|)jG|!}*})|*D],}+|+jI||"jK||d{.|'jM}, |,5 tO|"\}"}-| r |-r td | |-} | |jP} || tRjT|vr td |jVjY|"}.|?t[}/|/j]||/jY|"}0|0r|.j_|0| t)|}n2|j`r&tctd5tg|"\}}ddd|ji||"|||$||.| |!| | ||j2|jj|||,|||||*|jl }1 to|&jp|&j64d{|jrJ|jrjq|1|*|& d{}2dddd{2j|J|2j~J|2j~j|,t||||&j||jrj||  |1j|2d{}4 |4j9|2d{ |jVj]|4j|4j|4jdvrB| r?|*D]-}+|+j||"jK|||4d{/|dz }| j|4| r7|| k\r2|4jt| djt| |4jdk(r|4jtRjk7s+|4jdvrm|4jtRjk(rPtRj}d}|jtRjr|jtRj|4jjtRjxs)|4jjtRj}5|5n|4j t)|5|j }6|6j}7|7dvr|4jtd|7s|"j|6}6|"j|6jk7r"d} |jtRjTd|6}"i}|4j ddd| |j}|n.t|r|4d{n|r4j|(B4j&|4jj|(jn|(jt| 4_i|*D]-}+|+j||"jK|||4d{/|4S#t$r}#t||#d}#~#wwxYw#t$r}#t||#d}#~#wwxYwcc})w7#1swYxYw77U7H#1d{7swYYxYw#ttjv$r }3tyd j{|"|3d}3~3wwxYw77#t$r|4jwxYw#t$r|2jwxYw#t$rt$r?}3|3jt|3ttjvrt|3j|3d}3~3wwxYw7#t$r}#t|5|#d}#~#wwxYw#1swY+xYw77s#t$r]}#|'j|(r|(jd}(|*D].}+|+j||"jK|||#d{70d}#~#wwxYww)NzSession is closedz9data and json parameters can not be used at the same time)dumpszChunk size is deprecated #1615rrp)rg)rz&4&C&CC&H &',,[9( #E %k2K0Ec0J-E:K--% '*6! +! '!) '"+!ZZ'+';';##-# $(7&3%"&../.C6 ##/(00+7+F+F$$(??#>>#>)-)@)@ #FL*A*$D  >>555==444MM55#%>v%F'5(7%1%;%;%1/3/V/V&3'56 @ "),$#7D&&*jj&6 6 6$$33DLL$((K{{&??O%+E"'"="= &(8(8(@'4# "Q t,(Y--G JJL"2 ' 7 7w# !KK3.4;;$..3P KK:5$++:W%)]]F#'D&{{4+>+>? ' D,?,? @ $ 0 0 ?!4<> JJL",-Q"RR!'),*)=J::<:+<+<+>>#'D#KK(:(:DA(!#  er j '#'#9#9 '*+&t,,,!%%'!??.OO00?MMO!'NDM ,,C,,V4gt KE 0Z(a / 0 / 'Q. /:  VTKK> $ #//#0>EEcJ"##,$8 6#0& $ %& -" JJL!"'"@99,CAUAU1V!+SXX6C?@L *;",U"3:;r r v-   HHJ  22C,,V4gq   sBd1?d4f _! __!!f$ _>- _99_>> f ` d!`5``5`2 %`(&`2 -`55a(a##a((d!+b.a11b  bb**b--c>?:c99c>>d! d ddd!!d+& d41d44 f=Af f fffrmg$@ri@r protocolsrreceive_timeout autocloseautoping heartbeatrrrrrrrrrrrr max_msg_sizerRrSrTrUrVrrW_WSRequestContextManagerc`t|j||||||||| | | | | ||||||||S)zInitiate websocket connection.rQ)rX _ws_connect)rrrrRrrSrTrUrVrrrrrrrrrrrrrWs ro ws_connectzClientSession.ws_connectsc4(   # /#!#%%''+!)+    rnc K| t}n t| }tjdtjdtjdi}|j D]\}}|j ||tjtjd}|j|tj<|r"dj||tj<| | |tj<|rt!|}||tj"<t%||||}|j'||| |d| | ||| d{} |j(d k7r8t+|j,|j.d |j(|j0 |j0j3tjd j5dk7r8t+|j,|j.d |j(|j0 |j0j3tjd j5dk7r8t+|j,|j.d|j(|j0 |j0j3tj6d }tjt9j:|t<zj?j}||k7r8t+|j,|j.d|j(|j0 d}|rrtj|j0vrV|j0tjjAdD cgc]} | jC}!} |!D] } | |vs| }nd}"|r?|j0j3tj"}#|#r tE|#\}}"nd}d}"|jJ}%|%J|%jL}&|&J|%jN}'|'JtQ|&d|jR}(|&jUtW|(||(tY|&|'d||"})|j[|(|)||||||jR||||" S79cc} w#tF$rK}$t+|j,|j.|$jHd|j(|j0 |$d}$~$wwxYw#t\$r|j_wxYww)N websocketUpgrade13,)rF)rrrrrrrrezInvalid response status)rr)rrzInvalid upgrade headerupgradezInvalid connection headerzInvalid challenge responserrrT)use_maskr notakeover)rSrVrclient_notakeover)0rrUPGRADE CONNECTIONSEC_WEBSOCKET_VERSIONitems setdefaultbase64 b64encodeosurandomdecodeSEC_WEBSOCKET_KEYrSEC_WEBSOCKET_PROTOCOLORIGINrQSEC_WEBSOCKET_EXTENSIONSr:r\r)r5r,r@rr1lowerSEC_WEBSOCKET_ACCEPThashlibsha1rKdigestsplitstriprRrOr(r9r rrSrx set_parserrMrNrr$r%)*rrrrRrrSrTrUrVrrrrrrrrrrrrrWrdefault_headerskeyvaluesec_keyextstrrNr_keymatchr protoresp_protocolsre compress_hdrsrMrL conn_protorreaderwriters* rorZzClientSession._ws_connects4 ?-8]L&w/L LL+ OOY  & &  *//1 0JC  # #C / 0""2::b>2/6~~/? T++, 8;8KL44 5  (.L % 2F:@L66 7ZkJ\\    !'"   k {{c!,%%LL5;; LL || b1779[H,%%LL4;; LL ||4::< I,%%LL7;; LL LL$$T%>%>CE$$W\\'F2B%C%J%J%LMTTVE~,%%LL8;; LL HT88DLLH"&d.I.I!J!P!PQT!U"KKM"" ,E )#( J $ 0 01N1N O   #/;M/J,* !H!&J??D# ##J) ))I( ((6JE 7F  ! !/&,"G P$!% F** /#!",+  W  r"",#4 -- LL$'HHQK#';;$(LL  # ##:  JJL  siES<Q?S< H-S9R S4SRA9S(S<S SASSSS99S<CIMultiDict[str]ct|j}|rpt|ttfs t|}t }|j D]2\}}||vr|j|||||<|j|4|S)z3Add default headers and transform it to CIMultiDict)rrrrrrrjr)rrresult added_namesr~rs rorzClientSession._prepare_headerssT223 g 'BC%g.$'EK%mmo ) U+%JJsE*"'F3KOOC(  )  rn)rc \t|jtj|fd|i|S)zPerform HTTP GET request.r)rrrr0rrrrs ror1zClientSession.gets0& DMM$-- Xo XQW X  rnc \t|jtj|fd|i|S)zPerform HTTP OPTIONS request.r)rrr METH_OPTIONSrs rooptionszClientSession.optionss:& DMM!!3 8G KQ   rnc \t|jtj|fd|i|S)zPerform HTTP HEAD request.r)rrrr.rs roheadzClientSession.heads8& DMM 5D HN   rn)rc \t|jtj|fd|i|S)zPerform HTTP POST request.r)rrrr/rrrrs ropostzClientSession.posts/& DMM$..# CD CF C  rnc \t|jtj|fd|i|S)zPerform HTTP PUT request.r)rrrMETH_PUTrs roputzClientSession.puts/& DMM$-- B4 B6 B  rnc \t|jtj|fd|i|S)zPerform HTTP PATCH request.r)rrr METH_PATCHrs ropatchzClientSession.patchs/& DMM$//3 DT DV D  rnc Xt|jtj|fi|S)zPerform HTTP DELETE request.)rrr METH_DELETE)rrrs rodeletezClientSession.deletes%%mdmmD4D4Dc&TV&TUUrncK|jsB|j.|jr"|jjd{d|_yy7 w)zMClose underlying connector. Release all acquired resources. N)rrvrzr%rs ror%zClientSession.closesF {{*t/D/Doo++---"DO-sAAAAcN|jduxs|jjS)z@Is client session closed. A readonly property. N)rvrrs rorzClientSession.closeds" $&@$//*@*@@rnc|jS)z(Connector instance used for the session.rvrs rorzClientSession.connector srnc|jS)zThe session cookies.)ryrs rorzClientSession.cookie_jarsrnc|jS)z"The session HTTP protocol version.)r|rs rorzClientSession.version}}rnc|jS))Do URL requoting on redirection handling.)r~rs rorwz"ClientSession.requote_redirect_urls)))rncJtjdtd||_y)rz=session.requote_redirect_url modification is deprecated #2778rrN)rrrr~)rrs rorwz"ClientSession.requote_redirect_url!s#  N  &)"rncRtjdtd|jS)zSession's loop.z"client.loop property is deprecatedrr)rrrrxrs rorzClientSession.loop+s%  02DQR zzrnc|jS)zTimeout for the session.)rrs rorzClientSession.timeout3rrnc|jS)z*The default headers of the client session.)rrs rorzClientSession.headers8$$$rnc|jS)z2Headers for which autogeneration should be skipped)rrs rorzClientSession.skip_auto_headers=s&&&rnc|jS)z2An object that represents HTTP Basic Authorization)r{rs rorzClientSession.authBs!!!rnc|jS)zJson serializer callable)r}rs rorzClientSession.json_serializeGs###rnc|jS)z-Should connector be closed on session closing)rzrs rorzClientSession.connector_ownerLrrnc|jS)zGShould `ClientResponse.raise_for_status()` be called for each response.)rrs rorzClientSession.raise_for_statusQs %%%rnc|jS)z7Should the body response be automatically decompressed.)rrs rorzClientSession.auto_decompressXrrnc|jS)z Should proxies information from environment or netrc be trusted. Information is from HTTP_PROXY / HTTPS_PROXY environment variables or ~/.netrc file if present. )rrs rorzClientSession.trust_env]srnc|jS)z7A list of TraceConfig instances used for client tracing)rrs rorzClientSession.trace_configsgs"""rncd|_y)zwDetach connector from session without closing the former. Session is switched to closed state anyway. Nrrs rodetachzClientSession.detachls rnctd)NzUse async with instead) TypeErrorrs ro __enter__zClientSession.__enter__ss011rnexc_typeexc_valexc_tbcyrrmrrrrs ro__exit__zClientSession.__exit__vs rncK|Swrrmrs ro __aenter__zClientSession.__aenter__s  sc@K|jd{y7wr)r%rs ro __aexit__zClientSession.__aexit__s jjls rrN)rr)rrZ)hrhrirj__doc__rrrurr StackSummaryrlrvr<rrr6r7r;r HttpVersion11rIrYrAbstractEventLooprWrXrstrrCrVrrLr"rrr rrkrAobjectr[rrUint_CharsetResolverrrrBrrrrr\rrrbytesr]rr8rrrr0r[rZrr1rrrrrrr%propertyrrrrrrwsetterrrrr rrrrrrrrrrrr$rrrr __classcell__)rs@rorZrZs 9   E<;?x 6 67>*.J'.(,~:.248*.*.59$(&*jj-:/=;R#1126 $ 08(,08 $%)59!!"6J=~:8$~:M* ~: w001 ~: ,' ~:,'~:$HSM2~:y!~:$~:M*~:^,~: 78~:~:./~: !~:" (N+Yt_<= = #~:(E9,-)~:*uo+~:,v},--~:./~:01~:2#3~:4 [ 125~:67~:89~::;~:<$4=~:> ?~:@ tO4    +C +c +d +(0 7 7D 7LL (L47L !L ,X,#,/3*.*.59$( $"&"& #$(*.3;%)'+,0HL)-047;&**.'+(,ERRR c*+ R  RR,'R,'R$HSM2Ry!RRR3-R$R !R" $.!19T?!BC C #R()R*!+R,Y'-R.}i/0/R0TN1R2e_3R4j)5R6eJ CD E7R8"#9R: -;R<$O4=R>sm?R@"$ARB }CRD! ERF GRp mm#%+/%)$( $.2*.$(*.DH%)'+,004+/2 2  2 C= 2  2 "%2 2 2 E?2 y!2  2 c*+2 ,'2 !2 Y'!2 ":wu~t[@ A#2 $TN%2 &e_'2 (j))2 * -+2 ,-2 ./2 0 $12 pmm#%+/%)$( $.2*.$(*.DH%)'+,004+/n n n C= n  n"%nnnE?ny!n nc*+n,'n!n Y'!n":wu~t[@ A#n$TN%n&e_'n(j))n* -+n,-n./n0 !1n`(>CU"9=  15 HK ! 9=  15 HK ! 9>  15 IL ! -1  &) zz%%% mm!!###sAAA A)rhrirjrr r7rZrrrrr$rrrmrnrorrs.I -t^CD     .$4 ./$m $$ ] # $  $rnrrFr)rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrcd}|d}t|d}t||||||}t|j|||||||||| | | | | |||||||S)aConstructs and sends a request. Returns response object. method - HTTP method url - request url params - (optional) Dictionary or bytes to be sent in the query string of the new request data - (optional) Dictionary, bytes, or file-like object to send in the body of the request json - (optional) Any json compatible python object headers - (optional) Dictionary of HTTP Headers to send with the request cookies - (optional) Dict object to send with the request auth - (optional) BasicAuth named tuple represent HTTP Basic Auth auth - aiohttp.helpers.BasicAuth allow_redirects - (optional) If set to False, do not follow redirects version - Request HTTP version. compress - Set to True if request has to be compressed with deflate encoding. chunked - Set to chunk size for chunked transfer encoding. expect100 - Expect 100-continue response from server. connector - BaseConnector sub-class instance to support connection pooling. read_until_eof - Read response until eof if response does not have Content-Length header. loop - Optional event loop. timeout - Optional ClientTimeout settings structure, 5min total timeout by default. Usage:: >>> import aiohttp >>> resp = await aiohttp.request('GET', 'http://python.org/') >>> resp >>> data = await resp.read() FT)r force_close)rrrrrr)rrrrrrrrrrrrrrrrrr)r>rZrr)rrrrrrrrrrrrrrrrrrrrrrrrrrrs ror\r\s@O d=  ' G )  /+'-)!%'))  , / rn)rrrlrwrrnrrr contextlibrtypesrrtypingrrrr r r r r rrrrrrrrrrrr multidictrrrryarlrrrr r!abcr"client_exceptionsr#r$r%r&r'r(r)r*r+r,r-r.r/r0r1r2r3r4r5 client_reqrepr6r7r8r9r: client_wsr;rr<r=r>r? cookiejarr@helpersrArBrCrDrErFrGrHrIrJrKrLrMrNhttp_websocketrOrPrQrRstreamsrStracingrTrUtypedefsrVrWrXrY__all__rr]sr[rqrlrrrrrrZrrrXrrrrrrr\rmrnror sW  0, BB!!"*J !   HGQQ)'GG% PJT$d34,)6F(C}%C : ^U3S89^^B3X+=!>@Q8*7G*$ !9:QR !$$J+/&*15 $ ""'+ $&*,4&*--)-"&045f f f WS#X& ' f  f  fl #f  .f 9 fffsmfd^fftnf !f" H #f$#%f&=&( )'f(l #)f*+f, &-f.3-/f0 7,, -1f23f45f6#7frn