idQUddlZddlZddlZddlmZmZmZmZmZm Z m Z m Z ddl m Z ddlmZmZmZddlmZddlmZdZe d ZGd d eZGd d eeZGddZGddZGddeZGddeZeZeee d<GddeeZ!Gdde!eZ"dS)N) AwaitableCallableDequeGenericListOptionalTupleTypeVar) BaseProtocol)BaseTimerContext set_exception set_result)internal_logger)Final) EMPTY_PAYLOAD EofStream StreamReader DataQueueFlowControlDataQueue_TceZdZdZdS)rzeof stream indication.N)__name__ __module__ __qualname____doc__D/opt/cloudlinux/venv/lib/python3.11/site-packages/aiohttp/streams.pyrrs    rrcNeZdZdegeefddfdZddZdefdZdS) AsyncStreamIterator read_funcreturnNc||_dSN)r")selfr"s r__init__zAsyncStreamIterator.__init__s "rAsyncStreamIterator[_T]c|Sr%rr&s r __aiter__zAsyncStreamIterator.__aiter__ rcK |d{V}n#t$rtwxYw|dkrt|SNr)r"rStopAsyncIterationr&rvs r __anext__zAsyncStreamIterator.__anext__!sc %~~''''''''BB % % %$ $ % 99$ $ s1)r#r() rrrrrrr'r+r2rrrr!r!ss#(2y}+<"=#$####rr!c:eZdZddZd dZdeeeffdZdS) ChunkTupleAsyncStreamIteratorstreamrr#Nc||_dSr%)_stream)r&r5s rr'z&ChunkTupleAsyncStreamIterator.__init__,s  rc|Sr%rr*s rr+z'ChunkTupleAsyncStreamIterator.__aiter__/r,rcbK|jd{V}|dkrt|S)NrF)r7 readchunkr/r0s rr2z'ChunkTupleAsyncStreamIterator.__anext__2sA<))++ + + + + + +   $ $ r)r5rr#N)r#r4) rrrr'r+r bytesboolr2rrrr4r4+s`ud{!3rr4cfeZdZdeefdZdedeefdZdeefdZde fdZ dS)AsyncStreamReaderMixinr#c*t|jSr%)r!readliner*s rr+z AsyncStreamReaderMixin.__aiter__:s"4=111rnc,tfdS)zzReturns an asynchronous iterator that yields chunks of size n. Python-3.5 available for Python 3.5+ only c.Sr%)read)rBr&srz5AsyncStreamReaderMixin.iter_chunked..CsDIIaLLr)r!r&rBs``r iter_chunkedz#AsyncStreamReaderMixin.iter_chunked=s' #    rc*t|jS)zoYield all available data as soon as it is received. Python-3.5 available for Python 3.5+ only )r!readanyr*s riter_anyzAsyncStreamReaderMixin.iter_anyFs #4<000rc t|S)zYield chunks of data as they are received by the server. The yielded objects are tuples of (bytes, bool) as returned by the StreamReader.readchunk method. Python-3.5 available for Python 3.5+ only )r4r*s r iter_chunksz"AsyncStreamReaderMixin.iter_chunksMs-T222rN) rrrr!r<r+intrHrKr4rMrrrr?r?9s2.u52222 c &9%&@    1-e411113:333333rr?c eZdZdZdZddddededeedee j d df d Z d e fd Z d eeeffd Zd eefd Zded dfdZdegdfd dfdZd+dZd efdZd efdZd+dZded dfdZd,deded dfdZd+dZd+dZde d dfdZd efdZ d-d ed efd!Z!d.d#ed efd$Z"d efd%Z#d eeeffd&Z$d#ed efd'Z%d.d#ed efd(Z&d#ed efd)Z'd#ed efd*Z(dS)/ra*An enhancement of asyncio.StreamReader. Supports asynchronous iteration by line, chunk or as available:: async for line in reader: ... async for chunk in reader.iter_chunked(1024): ... async for slice in reader.iter_any(): ... rN)timerloopprotocollimitrPrQr#c*||_||_|dz|_|tj}||_d|_d|_d|_tj |_ d|_ d|_ d|_d|_d|_||_g|_dS)NrF) _protocol _low_water _high_waterasyncioget_event_loop_loop_size_cursor_http_chunk_splits collectionsdeque_buffer_buffer_offset_eof_waiter _eof_waiter _exception_timer_eof_callbacks)r&rRrSrPrQs rr'zStreamReader.__init__hs" 19 <)++D   7;%0%6%8%8  7; ;?37 8:rc|jjg}|jr|d|jz|jr|d|jdkr$|d|j|jfz|jr|d|jz|jr|d|jzdd |zS) Nz%d byteseofizlow=%d high=%dzw=%rze=%rz<%s> ) __class__rr\appendrcrWrXrdrfjoin)r&infos r__repr__zStreamReader.__repr__s'( : 1 KK TZ/ 0 0 0 9  KK    ?e # # KK(DOT=M+NN O O O < / KK- . . . ? 2 KK0 1 1 1&&rc|j|jfSr%)rWrXr*s rget_read_buffer_limitsz#StreamReader.get_read_buffer_limitss!122rc|jSr%rfr*s r exceptionzStreamReader.exception rexcc||_|j|j}|d|_t |||j}|d|_t ||dSdSr%)rfrhclearrdrrer&rwwaiters rrzStreamReader.set_exceptionsv !!###  DL &# & & &!  #D  &# & & & & &  rcallbackc|jr2 |dS#t$rtjdYdSwxYw|j|dSNException in eof callback)rc Exceptionrrurhrmr&r|s ron_eofzStreamReader.on_eofsz 9 1 G  G G G)*EFFFFFF G   & &x 0 0 0 0 0s 77c8d|_|j}|d|_t|d|j}|d|_t|d|jD]1} |#t $rt jdY.wxYw|jdS)NTr) rcrdrrerhrrrury)r&r{cbs rfeed_eofzStreamReader.feed_eofs   DL vt $ $ $!  #D  vt $ $ $% G GB G G G G)*EFFFFF G !!#####s AA>=A>c|jS)z&Return True if 'feed_eof' was called.rcr*s ris_eofzStreamReader.is_eofs yrc |jo|j S)z=Return True if the buffer is empty and 'feed_eof' was called.rcrar*s rat_eofzStreamReader.at_eofsy---rcK|jrdS|j|_ |jd{Vd|_dS#d|_wxYwr%)rcr[ create_futurerer*s rwait_eofzStreamReader.wait_eofso 9  F :3355 $" " " " " " " "#D   tD  # # # #s A A datac\tjdtd|sdS|jr)|jd|jd|jd<d|_|xjt |z c_|xjt |zc_|j|d|_ dS)zDrollback reading some data from stream, inserting it to buffer head.zJunread_data() is deprecated and will be removed in future releases (#3260)rU) stacklevelNr) warningswarnDeprecationWarningrbrar\lenr] appendleft _eof_counter)r&rs r unread_datazStreamReader.unread_datas  =        F   $"l1od.A.C.CDDLO"#D  c$ii  D !  %%%rsizech|sdS|xjt|z c_|j||xjt|z c_|j}|d|_t |d|j|jkr'|jj s|j dSdSdSr%) r\rrarm total_bytesrdrrXrV_reading_paused pause_readingr&rrr{s r feed_datazStreamReader.feed_datas  F c$ii  D!!! CII%  DL vt $ $ $ :( ( (1O ( N ( ( * * * * * ) ( ( (rcR|j|jrtdg|_dSdS)Nz?Called begin_http_chunk_receiving whensome data was already fed)r^r RuntimeErrorr*s rbegin_http_chunk_receivingz'StreamReader.begin_http_chunk_receivingsC  " * "X')D # # # + *rc|jtd|jr |jdnd}|j|krdS|j|j|j}|d|_t |ddSdS)NzFCalled end_chunk_receiving without calling begin_chunk_receiving firstr)r^rrrmrdr)r&posr{s rend_http_chunk_receivingz%StreamReader.end_http_chunk_receivings  " *. .2-DKd%b))!  s " " F &&t'7888  DL vt $ $ $ $ $  r func_namecK|jtd|z|jx}|_ |jr(|j5|d{Vdddn #1swxYwYn|d{Vd|_dS#d|_wxYw)NzH%s() called while another coroutine is already waiting for incoming data)rdrr[rrg)r&rr{s r_waitzStreamReader._wait!s < #46?@  !% 8 8 : :: { [!! LLLLLLL!!!!!!!!!!!!!!! DLLL4DL    s/A= A  A= A$$A='A$( A== Bc:K|d{VSr%) readuntilr*s rrAzStreamReader.readline6s(^^%%%%%%%%%r separatorcKt|}|dkrtd|j|jd}d}d}|r|jr|r|j}|jd||dz}||r||z nd}||z }|t|z }|rd}||jkrtd|jr||jrn|r| d d{V||S) Nrz,Separator should be at least one-byte stringrTr rFz Chunk too bigr) r ValueErrorrfrarbfind_read_nowait_chunkrXrcr) r&rseplenchunk chunk_size not_enoughoffseticharrs rrzStreamReader.readuntil9sJY Q;;KLL L ? &/ !   ., 6: 6, Q,,Y??!C../Nuv~~BOO c$ii' '!&J 000$_555, 6: 6y  .jj---------% .( rrrBcfK|j|j |sd S|dkrKg} |d{V}|sn||3d |S|js0|js)| d d{V|js|j)| |S) NFrrr zEMultiple access to StreamReader in eof state, might be infinite loop.T) stack_inforrE) rfrcragetattrrrwarningrJrmrnr _read_nowait)r&rBblocksblocks rrEzStreamReader.read[s ? &/ !   3 q55 F %"llnn,,,,,, e$$$  % 88F## # , %ty %**V$$ $ $ $ $ $ $ $, %ty %  ###rcK|j|j|js0|js)|dd{V|js|j)|dS)NrJr)rfrarcrrr*s rrJzStreamReader.readanysz ? &/ ! , (ty (**Y'' ' ' ' ' ' ' ', (ty (  $$$rcK |j|j|jrl|jd}||jkrdS||jkr|||jz dfSt jd|jl|jr|ddfS|j rdS| d d{V) aReturns a tuple of (data, end_of_http_chunk). When chunked transfer encoding is used, end_of_http_chunk is a boolean indicating if the end of the data corresponds to the end of a HTTP chunk , otherwise it is always False. TNrrTzESkipping HTTP chunk end due to data consumption beyond chunk boundaryrFr:r;) rfr^popr]rrrrarrcr)r&rs rr;zStreamReader.readchunks **o%) -11!44$,&&&;%% --cDL.@AA4HH'8 ) | <//33U;;y $$|**[)) ) ) ) ) ) ) )1 *rcdK|j|jg}|dkr||d{V}|s:d|}tj|t ||z|||t |z}|dkd|S)Nrr)rfrErnrYIncompleteReadErrorrrm)r&rBrrpartials r readexactlyzStreamReader.readexactlys ? &/ ! !ee))A,,&&&&&&E M((6**1'3w<DataQueue is a general-purpose blocking queue with one reader.rQr#Nc|||_d|_d|_d|_d|_t j|_dS)NFr)r[rcrdrfr\r_r`ra)r&rQs rr'zDataQueue.__init__5s9  7; 37 .9.?.A.A rc*t|jSr%)rrar*s r__len__zDataQueue.__len__=s4<   rc|jSr%rr*s rrzDataQueue.is_eof@s yrc |jo|j Sr%rr*s rrzDataQueue.at_eofCsy---rc|jSr%rtr*s rruzDataQueue.exceptionFrvrrwcfd|_||_|j}|d|_t||dSdSr)rcrfrdrrzs rrzDataQueue.set_exceptionIsB   DL &# & & & & &  rrrrc|xj|z c_|j||f|j}|d|_t |ddSdSr%)r\rarmrdrrs rrzDataQueue.feed_dataRs^ d  T4L)))  DL vt $ $ $ $ $  rcXd|_|j}|d|_t|ddSdSr)rcrdr)r&r{s rrzDataQueue.feed_eof[s;   DL vt $ $ $ $ $  rc^K|js[|jsT|j|_ |jd{Vn'#t jt jf$r d|_wxYw|jr.|j\}}|xj |zc_ |S|j |j tr%) rarcr[rrdrYCancelledError TimeoutErrorrr\rfr)r&rrs rrEzDataQueue.readcs| DI :3355DL l""""""""*G,@A   #   < --//JD$ JJ$ JJK*o%s >$A"c*t|jSr%)r!rEr*s rr+zDataQueue.__aiter__ws"49---rrr)rrrrrYrr'rNrr=rrrrrurrrrrEr!r+rrrrr2sVHHBW6B4BBBB!!!!!.....8M2''4''''%%b%%D%%%%%%%% B    (..r2......rrcheZdZdZdededejddffd Zd d e d eddffd Z de ffd Z xZ S)rzlFlowControlDataQueue resumes and pauses an underlying stream. It is a destination for parsed data. rRrSrQr#Ncnt|||_|dz|_dS)N)rQrU)superr'rV_limit)r&rRrSrQrls rr'zFlowControlDataQueue.__init__s6 d###!ai rrrrct|||j|jkr'|jjs|jdSdSdSr%)rrr\rrVrr)r&rrrls rrzFlowControlDataQueue.feed_datas^ $%%% : # #DN,J # N ( ( * * * * * $ # # #rc>K td{V |j|jkr&|jjr|jSSS#|j|jkr&|jjr|jwwwxYwr%)rrEr\rrVrr)r&rls rrEzFlowControlDataQueue.reads 0'''''' 'zDK''DN,J'--////('tzDK''DN,J'--////('s %A##9Br) rrrrr rNrYrr'rrrE __classcell__)rls@rrr{s  $ -0 ;B;T       ++b++D++++++ 0B0000000000rr)#rYr_rtypingrrrrrrr r base_protocolr helpersr rrlogrtypedefsr__all__rrrr!r4r?rrr__annotations__rrrrrr saVVVVVVVVVVVVVVVVVVVV''''''@@@@@@@@@@   WT]]!!!!! !!!'"+"        33333333>`3`3`3`3`3)`3`3`3F 11111 111h&7%6%8%8 u\"888F.F.F.F.F. F.F.F.R000009R=00000r