Ë
    Eü´j?^  ã                   óh  — U d dl Z d dlZd dlZd dlZd dlmZmZ d dlmZm	Z	m
Z
 ddlmZ ddlmZmZmZmZmZmZ ddlmZ ddlmZ d	Z e
d
«      Z G d„ de«      Z G d„ de	e   «      Z G d„ d«      Z G d„ d«      Z G d„ de«      Z e«       Z ee   e!d<    G d„ de	e   «      Z" G d„ de"e   «      Z#y)é    N)Ú	AwaitableÚCallable)ÚFinalÚGenericÚTypeVaré   )ÚBaseProtocol)Ú_EXC_SENTINELÚDEFAULT_CHUNK_SIZEÚBaseTimerContextÚ	TimerNoopÚset_exceptionÚ
set_result)ÚLineTooLong)Úinternal_logger)ÚEMPTY_PAYLOADÚ	EofStreamÚStreamReaderÚ	DataQueueÚ_Tc                   ó   — e Zd ZdZy)r   zeof stream indication.N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__© ó    úM/root/workspace/ytshorts/venv/lib/python3.12/site-packages/aiohttp/streams.pyr   r      s   „ Ú r   r   c                   óD   — e Zd ZdZdeg ee   f   ddfd„Zdd„Zdefd„Z	y)	ÚAsyncStreamIterator©Ú	read_funcr"   ÚreturnNc                 ó   — || _         y ©Nr!   )Úselfr"   s     r   Ú__init__zAsyncStreamIterator.__init__&   s	   € Ø"ˆ�r   c                 ó   — | S r%   r   ©r&   s    r   Ú	__aiter__zAsyncStreamIterator.__aiter__)   ó   € Øˆr   c              ƒ   ó€   K  — 	 | j                  «       ƒ d {  –—† }|dk(  rt        ‚|S 7 Œ# t        $ r t        ‚w xY w­w©Nr   )r"   r   ÚStopAsyncIteration©r&   Úrvs     r   Ú	__anext__zAsyncStreamIterator.__anext__,   sG   è ø€ ð	%Ø—~‘~Ó'×'ˆBð �Š9Ü$Ð$Øˆ	ð (ùÜò 	%Ü$Ð$ð	%üs    ‚>„+ —)˜+ œ>©+ «;»>)r#   zAsyncStreamIterator[_T])
r   r   r   Ú	__slots__r   r   r   r'   r*   r1   r   r   r   r    r    "   s9   „ à€Ið# (¨2¨y¸©}Ð+<Ñ"=ð #À$ó #óð ô r   r    c                   ó6   — e Zd ZdZdd„Zdd„Zdeeef   fd„Z	y)	ÚChunkTupleAsyncStreamIterator©Ú_streamr#   Nc                 ó   — || _         y r%   r5   )r&   Ústreams     r   r'   z&ChunkTupleAsyncStreamIterator.__init__:   s	   € Øˆ�r   c                 ó   — | S r%   r   r)   s    r   r*   z'ChunkTupleAsyncStreamIterator.__aiter__=   r+   r   c              ƒ   ól   K  — | j                   j                  «       ƒ d {  –—† }|dk(  rt        ‚|S 7 Œ­w)N©r   F)r6   Ú	readchunkr.   r/   s     r   r1   z'ChunkTupleAsyncStreamIterator.__anext__@   s3   è ø€ Ø—<‘<×)Ñ)Ó+×+ˆØ�ÒÜ$Ð$Øˆ	ð ,ús   ‚4 2¡4)r8   r   r#   N)r#   r4   )
r   r   r   r2   r'   r*   ÚtupleÚbytesÚboolr1   r   r   r   r4   r4   6   s&   „ à€Ióóð  u¨d {Ñ!3ô r   r4   c                   óN  — e Zd ZdZdZdddœdedededz  dej                  dz  d	df
d
„Z
d	efd„Zd	ee   fd„Zded	ee   fd„Zd	ee   fd„Zd	efd„Zd	eeef   fd„Zded	dfd„Zd	edz  fd„Zefdeded	dfd„Zdeg df   d	dfd„Zd4d„Zd	efd„Zd	efd„Z d4d„Z!e"d	efd„«       Z#ded	dfd„Z$d5ded ed	efd!„Z%d4d"„Z&d4d#„Z'd$ed	dfd%„Z(dd&œd'edz  d	efd(„Z)	 d6dd)œd*ed+edz  d	efd,„Z*d7ded	efd-„Z+d	efd.„Z,d	eeef   fd/„Z-ded	efd0„Z.d7ded	efd1„Z/ded	efd2„Z0ded	efd3„Z1y)8r   a*  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():
            ...

    )Ú	_protocolÚ
_low_waterÚ_high_waterÚ_low_water_chunksÚ_high_water_chunksÚ_loopÚ_sizeÚ_cursorÚ_http_chunk_splitsÚ_bufferÚ_buffer_offsetÚ_eofÚ_waiterÚ_eof_waiterÚ
_exceptionÚ_timerÚ_eof_callbacksÚ_eof_counterÚtotal_bytesÚtotal_compressed_bytesN)ÚtimerÚloopÚprotocolÚlimitrU   rV   r#   c                ó¾  — || _         || _        |dz  | _        |€t        j                  «       }t        d|dz  «      | _        | j                  dz  | _        || _        d| _	        d| _
        d | _        t        j                  «       | _        d| _        d| _        d | _        d | _        d | _        |€
t)        «       n|| _        g | _        d| _        d| _        d | _        y )Né   é   é   r   F)rA   rB   rC   ÚasyncioÚget_event_loopÚmaxrE   rD   rF   rG   rH   rI   ÚcollectionsÚdequerJ   rK   rL   rM   rN   rO   r   rP   rQ   rR   rS   rT   )r&   rW   rX   rU   rV   s        r   r'   zStreamReader.__init__l   sÚ   € ð "ˆŒØˆŒØ  1™9ˆÔØˆ<Ü×)Ñ)Ó+ˆDô #& a¨°"©Ó"5ˆÔØ!%×!8Ñ!8¸AÑ!=ˆÔØˆŒ
ØˆŒ
ØˆŒØAEˆÔÜ1<×1BÑ1BÓ1DˆŒØˆÔØˆŒ	Ø48ˆŒØ8<ˆÔØ04ˆŒØ%* ]”i”k¸ˆŒØ8:ˆÔØˆÔØˆÔØ26ˆÕ#r   c                 ó  — | j                   j                  g}| j                  r|j                  d| j                  z  «       | j                  r|j                  d«       | j
                  t        k7  r*|j                  d| j
                  | j                  fz  «       | j                  r|j                  d| j                  z  «       | j                  r|j                  d| j                  z  «       ddj                  |«      z  S )Nz%d bytesÚeofzlow=%d high=%dzw=%rze=%rú<%s>ú )Ú	__class__r   rG   ÚappendrL   rB   r   rC   rM   rO   Újoin)r&   Úinfos     r   Ú__repr__zStreamReader.__repr__Ž   s¼   € Ø—‘×'Ñ'Ð(ˆØ�:Š:Ø�K‰K˜
 T§Z¡ZÑ/Ô0Ø�9Š9Ø�K‰K˜ÔØ�?‰?Ô0Ò0Ø�K‰KÐ(¨D¯O©O¸T×=MÑ=MÐ+NÑNÔOØ�<Š<Ø�K‰K˜ §¡Ñ-Ô.Ø�?Š?Ø�K‰K˜ §¡Ñ0Ô1Ø˜Ÿ™ ›Ñ&Ð&r   c                 ó,   — t        | j                  «      S r%   )r    Úreadliner)   s    r   r*   zStreamReader.__aiter__œ   s   € Ü" 4§=¡=Ó1Ð1r   Únc                 óF   ‡ ‡— ‰ j                  ‰«       t        ˆˆ fd„«      S )z>Returns an asynchronous iterator that yields chunks of size n.c                  ó&   •— ‰j                  ‰ «      S r%   )Úread)rm   r&   s   €€r   ú<lambda>z+StreamReader.iter_chunked.<locals>.<lambda>¢   s   ø€ ¨4¯9©9°Q«<€ r   )Úset_read_chunk_sizer    ©r&   rm   s   ``r   Úiter_chunkedzStreamReader.iter_chunkedŸ   s   ù€ à× Ñ  Ô#Ü"Ô#7Ó8Ð8r   c                 ó,   — t        | j                  «      S )z3Yield all available data as soon as it is received.)r    Úreadanyr)   s    r   Úiter_anyzStreamReader.iter_any¤   s   € ä" 4§<¡<Ó0Ð0r   c                 ó   — t        | «      S )z´Yield 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.
        )r4   r)   s    r   Úiter_chunkszStreamReader.iter_chunks¨   s   € ô -¨TÓ2Ð2r   c                 ó2   — | j                   | j                  fS r%   ©rB   rC   r)   s    r   Úget_read_buffer_limitsz#StreamReader.get_read_buffer_limits°   s   € Ø—‘ ×!1Ñ!1Ð2Ð2r   c                 óF   — || j                   kD  r|| _         |dz  | _        yy)z7Raise buffer limits to match the consumer's chunk size.rZ   Nr{   rs   s     r   rr   z StreamReader.set_read_chunk_size³   s&   € àˆt�‰ÒØˆDŒOØ  1™uˆDÕð r   c                 ó   — | j                   S r%   ©rO   r)   s    r   Ú	exceptionzStreamReader.exception¹   ó   € Ø�‰Ðr   ÚexcÚ	exc_causec                 óÐ   — || _         | j                  j                  «        | j                  }|�d | _        t	        |||«       | j
                  }|�d | _        t	        |||«       y y r%   )rO   rQ   ÚclearrM   r   rN   ©r&   r‚   rƒ   Úwaiters       r   r   zStreamReader.set_exception¼   si   € ð
 ˆŒØ×Ñ×!Ñ!Ô#à—‘ˆØÐØˆDŒLÜ˜& # yÔ1à×!Ñ!ˆØÐØ#ˆDÔÜ˜& # yÕ1ð r   Úcallbackc                 ó¬   — | j                   r		  |«        y | j                  j                  |«       y # t        $ r t        j                  d«       Y y w xY w©NúException in eof callback)rL   Ú	Exceptionr   r€   rQ   rg   ©r&   rˆ   s     r   Úon_eofzStreamReader.on_eofÎ   sL   € Ø�9Š9ðGÙ•
ð ×Ñ×&Ñ& xÕ0øô ò GÜ×)Ñ)Ð*EÖFðGús   Ž2 ²AÁAc                 ó|  — d| _         | j                  }|�d | _        t        |d «       | j                  }|�d | _        t        |d «       | j                  j                  d¬«       | j                  D ]
  }	  |«        Œ | j                  j                  «        y # t        $ r t        j                  d«       Y ŒHw xY w)NTF)Úresume_parserr‹   )rL   rM   r   rN   rA   Úresume_readingrQ   rŒ   r   r€   r…   )r&   r‡   Úcbs      r   Úfeed_eofzStreamReader.feed_eof×   s»   € ØˆŒ	à—‘ˆØÐØˆDŒLÜ�v˜tÔ$à×!Ñ!ˆØÐØ#ˆDÔÜ�v˜tÔ$ð 	�‰×%Ñ%°EÐ%Ô:à×%Ñ%ò 	GˆBðGÙ•ð	Gð 	×Ñ×!Ñ!Õ#øô ò GÜ×)Ñ)Ð*EÖFðGús   Á6BÂB;Â:B;c                 ó   — | j                   S )z&Return True if  'feed_eof' was called.©rL   r)   s    r   Úis_eofzStreamReader.is_eofï   s   € à�y‰yÐr   c                 ó8   — | j                   xr | j                   S )z=Return True if the buffer is empty and 'feed_eof' was called.©rL   rJ   r)   s    r   Úat_eofzStreamReader.at_eofó   s   € à�y‰yÒ- §¡Ð-Ð-r   c              ƒ   óÔ   K  — | j                   ry | j                  �J ‚| j                  j                  «       | _        	 | j                  ƒ d {  –—†  d | _        y 7 Œ# d | _        w xY w­wr%   )rL   rN   rF   Úcreate_futurer)   s    r   Úwait_eofzStreamReader.wait_eof÷   sa   è ø€ Ø�9Š9Øà×ÑÐ'Ð'Ð'ØŸ:™:×3Ñ3Ó5ˆÔð	$Ø×"Ñ"×"Ð"à#ˆDÕð #ùà#ˆDÕüs.   ‚;A(¾A ÁAÁA ÁA(ÁA Á	A%Á%A(c                 óJ   — | j                   €| j                  S | j                   S r%   )rT   rS   r)   s    r   Útotal_raw_byteszStreamReader.total_raw_bytes  s&   € à×&Ñ&Ð.Ø×#Ñ#Ð#Ø×*Ñ*Ð*r   Údatac                 óv  — t        j                  dt        d¬«       |sy| j                  r0| j                  d   | j                  d | j                  d<   d| _        | xj
                  t        |«      z  c_        | xj                  t        |«      z  c_        | j                  j                  |«       d| _	        y)zDrollback reading some data from stream, inserting it to buffer head.zJunread_data() is deprecated and will be removed in future releases (#3260)rZ   )Ú
stacklevelNr   )
ÚwarningsÚwarnÚDeprecationWarningrK   rJ   rG   ÚlenrH   Ú
appendleftrR   )r&   rŸ   s     r   Úunread_datazStreamReader.unread_data  s“   € ä�‰ð=äØõ		
ñ Øà×ÒØ"Ÿl™l¨1™o¨d×.AÑ.AÐ.CÐDˆD�L‰L˜‰OØ"#ˆDÔØ�
Š
”c˜$“iÑ�
Ø�Šœ˜D›	Ñ!�Ø�‰×Ñ Ô%ØˆÕr   Úsizec                 óx  — | j                   rJ d«       ‚|syt        |«      }| xj                  |z  c_        | j                  j	                  |«       | xj
                  |z  c_        | j                  }|�d | _        t        |d «       | j                  | j                  kD  r| j                  j                  «        y)Nzfeed_data after feed_eofF)rL   r¥   rG   rJ   rg   rS   rM   r   rC   rA   Úpause_reading)r&   rŸ   r¨   Údata_lenr‡   s        r   Ú	feed_datazStreamReader.feed_data  s™   € Ø—9’9Ð8Ð8Ó8ˆ}áØä�t“9ˆØ�
Š
�hÑ�
Ø�‰×Ñ˜DÔ!Ø×Ò˜HÑ$Õà—‘ˆØÐØˆDŒLÜ�v˜tÔ$à�:‰:˜×(Ñ(Ò(Ø�N‰N×(Ñ(Ô*Ør   c                 ó~   — | j                   €1| j                  rt        d«      ‚t        j                  «       | _         y y )Nz@Called begin_http_chunk_receiving when some data was already fed)rI   rS   ÚRuntimeErrorr`   ra   r)   s    r   Úbegin_http_chunk_receivingz'StreamReader.begin_http_chunk_receiving0  s?   € Ø×"Ñ"Ð*Ø×ÒÜ"ØVóð ô '2×&7Ñ&7Ó&9ˆDÕ#ð +r   c                 ó’  — | j                   €t        d«      ‚| j                   r| j                   d   nd}| j                  |k(  ry | j                   j                  | j                  «       t	        | j                   «      | j
                  kD  r| j                  j                  «        | j                  }|�d | _        t        |d «       y y )NzFCalled end_chunk_receiving without calling begin_chunk_receiving firstéÿÿÿÿr   )
rI   r®   rS   rg   r¥   rE   rA   rª   rM   r   )r&   Úposr‡   s      r   Úend_http_chunk_receivingz%StreamReader.end_http_chunk_receiving8  s»   € Ø×"Ñ"Ð*Üð.óð ð .2×-DÒ-Dˆd×%Ñ% bÒ)È!ˆà×Ñ˜sÒ"ð à×Ñ×&Ñ& t×'7Ñ'7Ô8ô
 ˆt×&Ñ&Ó'¨$×*AÑ*AÒAØ�N‰N×(Ñ(Ô*ð —‘ˆØÐØˆDŒLÜ�v˜tÕ$ð r   Ú	func_namec              ƒ   óF  K  — | j                   j                  st        d«      ‚| j                  �t        d|z  «      ‚| j                  j                  «       x}| _        	 | j                  5  |ƒ d {  –—†  d d d «       d | _        y 7 Œ# 1 sw Y   ŒxY w# d | _        w xY w­w)NzConnection closed.zH%s() called while another coroutine is already waiting for incoming data)rA   Ú	connectedr®   rM   rF   r›   rP   )r&   r´   r‡   s      r   Ú_waitzStreamReader._wait\  s¡   è ø€ Ø�~‰~×'Ò'ÜÐ3Ó4Ð4ð �<‰<Ð#Üð4Ø6?ñ@óð ð
 !%§
¡
× 8Ñ 8Ó :Ð:ˆ�”ð	 Ø—‘ñ Ø—�÷ð  ˆD�Lð ø÷ð ûð  ˆD�LüsH   ‚AB!Á B Á,B	Á2BÁ3B	Á7B Á?B!ÂB	Â	BÂB Â	BÂB!©Úmax_line_lengthr¹   c             ƒ   óB   K  — | j                  |¬«      ƒ d {  –—† S 7 Œ­w)N©Úmax_size)Ú	readuntil©r&   r¹   s     r   rl   zStreamReader.readlineq  s   è ø€ Ø—^‘^¨_�^Ó=×=Ð=Ð=ús   ‚˜™r»   Ú	separatorr¼   c             ƒ   ó0  K  — t        |«      }|dk(  rt        d«      ‚| j                  �| j                  ‚d}d}d}|xs | j                  }|rÄ| j                  r‹|r‰| j
                  }| j                  d   j                  ||«      dz   }| j                  |r||z
  |z   dz
  nd«      }	||	z  }|t        |	«      z  }|rd}||kD  rt        |d d d	z   |«      ‚| j                  r|rŒ‰| j                  r	 |S |r| j                  d
«      ƒ d {  –—†  |rŒÄ|S 7 Œ	­w)Nr   z,Separator should be at least one-byte stringr   Tr   r±   Féd   s   ...r½   )r¥   Ú
ValueErrorrO   rC   rJ   rK   ÚfindÚ_read_nowait_chunkr   rL   r·   )
r&   r¿   r¼   ÚseplenÚchunkÚ
chunk_sizeÚ
not_enoughÚoffsetÚicharrŸ   s
             r   r½   zStreamReader.readuntilt  s9  è ø€ ô �Y“ˆØ�QŠ;ÜÐKÓLÐLà�?‰?Ð&Ø—/‘/Ð!àˆØˆ
Øˆ
ØÒ/˜t×/Ñ/ˆáØ—,’,¡:Ø×,Ñ,�ØŸ™ Q™×,Ñ,¨Y¸Ó?À!ÑC�à×.Ñ.Ù38�E˜F‘N VÑ+¨aÒ/¸bó�ð ˜‘�Øœc $›iÑ'�
ÙØ!&�Jà Ò(Ü% e¨D¨S k°FÑ&:¸HÓEÐEð —,’,¢:ð �yŠyØð
 ˆñ Ø—j‘j Ó-×-Ð-ò) ð, ˆð .ús   ‚C"DÃ%%DÄ
DÄDÄDc              ƒ   ó’  K  — | j                   �| j                   ‚	 | j                  rG| j                  s;t        | dd«      dz   | _        | j                  dkD  rt        j                  dd¬«       |sy|dk  r`| j                  t        j                  «       g }	 | j                  «       ƒ d {  –—† }|sn|j                  |«       Œ-dj                  |«      S | j                  |«       | j                  s>| j                  s2| j                  d	«      ƒ d {  –—†  | j                  s| j                  sŒ2| j                  |«      S 7 Œ–7 Œ0­w)
NTrR   r   r   é   zEMultiple access to StreamReader in eof state, might be infinite loop.)Ú
stack_infor   rp   )rO   rL   rJ   ÚgetattrrR   r   Úwarningrr   ÚsysÚmaxsizerv   rg   rh   r·   Ú_read_nowait)r&   rm   ÚblocksÚblocks       r   rp   zStreamReader.read›  s!  è ø€ Ø�?‰?Ð&Ø—/‘/Ð!ð Ø�yŠy §¢Ü$+¨D°.À!Ó$DÀqÑ$H�Ô!Ø×$Ñ$ qÒ(Ü#×+Ñ+ð2à#'õñ ØàˆqŠ5à×$Ñ$¤S§[¡[Ô1ØˆFØØ"Ÿl™l›n×,�ÙØØ—‘˜eÔ$ð	 ð
 —8‘8˜FÓ#Ð#à× Ñ  Ô#ð —,’, t§y¢yØ—*‘*˜VÓ$×$Ð$ð —,’, t§y£yð × Ñ  Ó#Ð#ð -øð %ús+   ‚B*EÂ,EÂ-A'EÄEÄEÄ2EÅEc              ƒ   óô   K  — | j                   �| j                   ‚| j                  s>| j                  s2| j                  d«      ƒ d {  –—†  | j                  s| j                  sŒ2| j	                  d«      S 7 Œ.­w)Nrv   r±   )rO   rJ   rL   r·   rÒ   r)   s    r   rv   zStreamReader.readanyÄ  sb   è ø€ Ø�?‰?Ð&Ø—/‘/Ð!ð
 —,’, t§y¢yØ—*‘*˜YÓ'×'Ð'ð —,’, t§y£yð × Ñ  Ó$Ð$ð (ús   ‚AA8ÁA6ÁA8Á%A8c              ƒ   óÚ  K  — 	 | j                   �| j                   ‚| j                  r{| j                  j                  «       }|| j                  k(  ry|| j                  kD  r | j	                  || j                  z
  «      dfS t        j                  d«       | j                  rŒ{| j                  r| j                  d«      dfS | j                  ry| j                  d«      ƒ d{  –—†  Œå7 Œ­w)	a  Returns 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.
        TN©r   TzESkipping HTTP chunk end due to data consumption beyond chunk boundaryr±   Fr;   r<   )rO   rI   ÚpopleftrH   rÒ   r   rÏ   rJ   rÄ   rL   r·   )r&   r²   s     r   r<   zStreamReader.readchunkÐ  sÝ   è ø€ ð Ø�‰Ð*Ø—o‘oÐ%à×)Ò)Ø×-Ñ-×5Ñ5Ó7�Ø˜$Ÿ,™,Ò&Ø&Ø˜Ÿ™Ò%Ø ×-Ñ-¨c°D·L±LÑ.@ÓAÀ4ÐHÐHÜ×'Ñ'ð8ôð ×)Ó)ð �|Š|Ø×/Ñ/°Ó3°UÐ;Ð;ð �yŠyð $à—*‘*˜[Ó)×)Ð)ð1 ð0 *ús   ‚B C+Â#A C+Ã#C)Ã$C+c              ƒ   óT  K  — | j                   �| j                   ‚g }|dkD  rs| j                  |«      ƒ d {  –—† }|s3dj                  |«      }t        j                  |t        |«      |z   «      ‚|j                  |«       |t        |«      z  }|dkD  rŒsdj                  |«      S 7 Œo­w)Nr   r   )rO   rp   rh   r]   ÚIncompleteReadErrorr¥   rg   )r&   rm   rÓ   rÔ   Úpartials        r   ÚreadexactlyzStreamReader.readexactlyò  s›   è ø€ Ø�?‰?Ð&Ø—/‘/Ð!à ˆØ�!ŠeØŸ)™) A›,×&ˆEÙØŸ(™( 6Ó*�Ü×1Ñ1°'¼3¸w»<È!Ñ;KÓLÐLØ�M‰M˜%Ô Ø”�U“‰OˆAð �!‹eð �x‰x˜ÓÐð 'ús   ‚4B(¶B&·AB(ÂB(c                 ó¶   — | j                   �| j                   ‚| j                  r%| j                  j                  «       st        d«      ‚| j	                  |«      S )Nz9Called while some coroutine is waiting for incoming data.)rO   rM   Údoner®   rÒ   rs   s     r   Úread_nowaitzStreamReader.read_nowait  sQ   € ð
 �?‰?Ð&Ø—/‘/Ð!à�<Š< §¡× 1Ñ 1Ô 3ÜØKóð ð × Ñ  Ó#Ð#r   c                 óà  — | j                   d   }| j                  }|dk7  r/t        |«      |z
  |kD  r||||z    }| xj                  |z  c_        nC|r'| j                   j                  «        ||d  }d| _        n| j                   j                  «       }t        |«      }| xj                  |z  c_        | xj
                  |z  c_        | j                  }|r7|d   | j
                  k  r%|j                  «        |r|d   | j
                  k  rŒ%| j                  | j                  k  rH| j                  �"t        | j                  «      | j                  k  r| j                  j                  «        |S )Nr   r±   )rJ   rK   r¥   rØ   rG   rH   rI   rB   rD   rA   r‘   )r&   rm   Úfirst_bufferrÉ   rŸ   r«   Úchunk_splitss          r   rÄ   zStreamReader._read_nowait_chunk  s<  € Ø—|‘| A‘ˆØ×$Ñ$ˆØ�Š7”s˜<Ó(¨6Ñ1°AÒ5Ø ¨°!©Ð4ˆDØ×Ò 1Ñ$ÖáØ�L‰L× Ñ Ô"Ø  Ð(ˆDØ"#ˆDÕð —<‘<×'Ñ'Ó)ˆDä�t“9ˆØ�
Š
�hÑ�
Ø�Š˜Ñ �à×.Ñ.ˆá˜|¨A™°·±Ò=Ø× Ñ Ô"ñ ˜|¨A™°·±Ó=ð �:‰:˜Ÿ™Ò'Ø×#Ñ#Ð+Ü�4×*Ñ*Ó+¨d×.DÑ.DÒDà�N‰N×)Ñ)Ô+Øˆr   c                 óÚ  — | j                   j                  «        |dk(  rbt        | j                  «      }|dk(  r| j	                  d«      S dj                  t        |«      D �cg c]  }| j	                  d«      ‘Œ c}«      S g }| j                  rC| j	                  |«      }|j                  |«       |t        |«      z  }|dk(  rn| j                  rŒC|rdj                  |«      S dS c c}w )z6Read not more than n bytes, or whole buffer if n == -1r±   r   r   r   )rP   Úassert_timeoutr¥   rJ   rÄ   rh   Úrangerg   )r&   rm   ÚcountÚ_ÚchunksrÆ   s         r   rÒ   zStreamReader._read_nowait/  sÐ   € à�‰×"Ñ"Ô$à�Š7ô ˜Ÿ™Ó%ˆEØ˜ŠzØ×.Ñ.¨rÓ2Ð2Ø—8‘8Ä%ÈÃ,ÖO¸Q˜T×4Ñ4°RÕ8ÒOÓPÐPà ˆØ�lŠlØ×+Ñ+¨AÓ.ˆEØ�M‰M˜%Ô Ø”�U“‰OˆAØ�AŠvØð �l‹lñ $*ˆs�x‰x˜ÓÐ2¨sÐ2ùò Ps   Á#C(©r#   N©r   )ó   
©r±   )2r   r   r   r   r2   r	   Úintr   r]   ÚAbstractEventLoopr'   Ústrrj   r    r>   r*   rt   rw   r4   ry   r=   r|   rr   ÚBaseExceptionr€   r
   r   r   rŽ   r“   r?   r–   r™   rœ   Úpropertyrž   r§   r¬   r¯   r³   r·   rl   r½   rp   rv   r<   rÜ   rß   rÄ   rÒ   r   r   r   r   r   G   s‚  „ ñð€Ið8 *.Ø15ò 7àð 7ð ð 7ð
   $Ñ&ð 7ð ×'Ñ'¨$Ñ.ð 7ð 
ó 7ðD'˜#ó 'ð2Ð.¨uÑ5ó 2ð9˜cð 9Ð&9¸%Ñ&@ó 9ð
1Ð-¨eÑ4ó 1ð3Ð:ó 3ð3¨¨c°3¨h©ó 3ð% Sð %¨Tó %ð˜=¨4Ñ/ó ð $1ñ2àð2ð !ð2ð 
ó	2ð$1˜x¨¨D¨Ñ1ð 1°dó 1ó$ð0˜ó ð.˜ó .ó	$ð ð+ ò +ó ð+ð
 ð ¨$ó ñ(˜eð ¨3ð °tó ó(:ó"%ðH  Sð  ¨Tó  ð* ?Cò >°°t±ð >Àuó >ð "'ð%ØBFò%Øð%Ø58¸4±Zð%à	ó%ñN'$˜Cð '$¨ó '$ðR
%˜uó 
%ð *  u¨d {Ñ!3ó  *ðD  3ð  ¨5ó  ñ$˜Sð $¨%ó $ð Cð ¨Eó ð>3˜cð 3 eô 3r   r   c                   ó(  — e Zd ZdZdd„Zdefd„Zdedz  fd„Ze	fdededdfd	„Z
d
eg df   ddfd„Zdd„Zdefd„Zdefd„Zdd„Zddededefd„Zdeddfd„Zddœdedz  defd„Zddedefd„Zdefd„Zdeeef   fd„Zdedefd„Zddedefd„Zy)ÚEmptyStreamReader©Ú_read_eof_chunkr#   Nc                 ó    — d| _         d| _        y )NFr   )rõ   rS   r)   s    r   r'   zEmptyStreamReader.__init__J  s   € Ø$ˆÔØˆÕr   c                 ó4   — d| j                   j                  z  S )Nrd   )rf   r   r)   s    r   rj   zEmptyStreamReader.__repr__N  s   € Ø˜Ÿ™×/Ñ/Ñ/Ð/r   c                  ó   — y r%   r   r)   s    r   r€   zEmptyStreamReader.exceptionQ  ó   € Ør   r‚   rƒ   c                  ó   — y r%   r   )r&   r‚   rƒ   s      r   r   zEmptyStreamReader.set_exceptionT  s   € ð
 	r   rˆ   c                 ó\   — 	  |«        y # t         $ r t        j                  d«       Y y w xY wrŠ   )rŒ   r   r€   r�   s     r   rŽ   zEmptyStreamReader.on_eof[  s-   € ð	CÙ�JøÜò 	CÜ×%Ñ%Ð&AÖBð	Cús   ‚
 Š+ª+c                  ó   — y r%   r   r)   s    r   r“   zEmptyStreamReader.feed_eofa  s   € Ør   c                  ó   — y©NTr   r)   s    r   r–   zEmptyStreamReader.is_eofd  rù   r   c                  ó   — yrþ   r   r)   s    r   r™   zEmptyStreamReader.at_eofg  rù   r   c              ƒ   ó   K  — y ­wr%   r   r)   s    r   rœ   zEmptyStreamReader.wait_eofj  s	   è ø€ Øùó   ‚rŸ   rm   c                  ó   — y©NFr   )r&   rŸ   rm   s      r   r¬   zEmptyStreamReader.feed_datam  s   € Ør   c                  ó   — y r%   r   rs   s     r   rr   z%EmptyStreamReader.set_read_chunk_sizep  s   € Ør   r¸   r¹   c             ƒ   ó   K  — y­wr-   r   r¾   s     r   rl   zEmptyStreamReader.readlines  ó	   è ø€ Øùr  c              ƒ   ó   K  — y­wr-   r   rs   s     r   rp   zEmptyStreamReader.readv  r  r  c              ƒ   ó   K  — y­wr-   r   r)   s    r   rv   zEmptyStreamReader.readany{  r  r  c              ƒ   ó4   K  — | j                   sd| _         yy­w)NTr;   r×   rô   r)   s    r   r<   zEmptyStreamReader.readchunk~  s   è ø€ Ø×#Ò#Ø#'ˆDÔ Øàùs   ‚c              ƒ   ó6   K  — t        j                  d|«      ‚­wr-   )r]   rÚ   rs   s     r   rÜ   zEmptyStreamReader.readexactly…  s   è ø€ Ü×)Ñ)¨#¨qÓ1Ð1ùs   ‚c                  ó   — yr-   r   rs   s     r   rß   zEmptyStreamReader.read_nowaitˆ  s   € Ør   ré   rê   rì   )r   r   r   r2   r'   rï   rj   rð   r€   r
   r   r   rŽ   r“   r?   r–   r™   rœ   r>   rí   r¬   rr   rl   rp   rv   r=   r<   rÜ   rß   r   r   r   ró   ró   F  s4  „ à$€Ióð0˜#ó 0ð˜=¨4Ñ/ó ð $1ñàðð !ðð 
ó	ðC˜x¨¨D¨Ñ1ð C°dó Cóð˜ó ð˜ó óñ˜eð ¨ð °Dó ð Sð ¨Tó ð ?Cò °°t±ð Àuó ñ˜Cð ¨ó ð
˜uó ð  u¨d {Ñ!3ó ð2 3ð 2¨5ó 2ñ˜Sð ¨%ô r   ró   r   c                   ó¾   — e Zd ZdZdej
                  ddfd„Zdefd„Zde	fd„Z
de	fd„Zdedz  fd	„Zefd
ededdfd„Zddededdfd„Zdd„Zdefd„Zdee   fd„Zy)r   z>DataQueue is a general-purpose blocking queue with one reader.rV   r#   Nc                 ón   — || _         d| _        d | _        d | _        t	        j
                  «       | _        y r  )rF   rL   rM   rO   r`   ra   rJ   )r&   rV   s     r   r'   zDataQueue.__init__’  s.   € ØˆŒ
ØˆŒ	Ø48ˆŒØ04ˆŒÜ:E×:KÑ:KÓ:Mˆ�r   c                 ó,   — t        | j                  «      S r%   )r¥   rJ   r)   s    r   Ú__len__zDataQueue.__len__™  s   € Ü�4—<‘<Ó Ð r   c                 ó   — | j                   S r%   r•   r)   s    r   r–   zDataQueue.is_eofœ  s   € Ø�y‰yÐr   c                 ó8   — | j                   xr | j                   S r%   r˜   r)   s    r   r™   zDataQueue.at_eofŸ  s   € Ø�y‰yÒ- §¡Ð-Ð-r   c                 ó   — | j                   S r%   r   r)   s    r   r€   zDataQueue.exception¢  r�   r   r‚   rƒ   c                 óf   — d| _         || _        | j                  x}�d | _        t        |||«       y y rþ   )rL   rO   rM   r   r†   s       r   r   zDataQueue.set_exception¥  s9   € ð
 ˆŒ	ØˆŒØ—l‘lÐ"ˆFÐ/ØˆDŒLÜ˜& # yÕ1ð 0r   rŸ   r¨   c                 ó‚   — | j                   j                  ||f«       | j                  x}�d | _        t        |d «       y y r%   )rJ   rg   rM   r   )r&   rŸ   r¨   r‡   s       r   r¬   zDataQueue.feed_data°  s=   € Ø�‰×Ñ˜T 4˜LÔ)Ø—l‘lÐ"ˆFÐ/ØˆDŒLÜ�v˜tÕ$ð 0r   c                 óV   — d| _         | j                  x}�d | _        t        |d «       y y rþ   )rL   rM   r   )r&   r‡   s     r   r“   zDataQueue.feed_eof¶  s.   € ØˆŒ	Ø—l‘lÐ"ˆFÐ/ØˆDŒLÜ�v˜tÕ$ð 0r   c              ƒ   ó²  K  — | j                   sN| j                  sB| j                  rJ ‚| j                  j	                  «       | _        	 | j                  ƒ d {  –—†  | j                   r| j                   j                  «       \  }}|S | j                  �| j                  ‚t        ‚7 ŒM# t
        j                  t
        j                  f$ r	 d | _        ‚ w xY w­wr%   )rJ   rL   rM   rF   r›   r]   ÚCancelledErrorÚTimeoutErrorrØ   rO   r   )r&   rŸ   rç   s      r   rp   zDataQueue.read¼  s±   è ø€ Ø�|Š| D§I¢IØ—|’|Ð#Ð#ØŸ:™:×3Ñ3Ó5ˆDŒLðØ—l‘l×"Ð"ð �<Š<Ø—l‘l×*Ñ*Ó,‰GˆD�!ØˆKØ�?‰?Ð&Ø—/‘/Ð!Üˆð #ùÜ×*Ñ*¬G×,@Ñ,@ÐAò Ø#�”Øðüs1   ‚ACÁ	B( ÁB&ÁB( ÁA	CÂ&B( Â(,CÃCc                 ó,   — t        | j                  «      S r%   )r    rp   r)   s    r   r*   zDataQueue.__aiter__Ì  s   € Ü" 4§9¡9Ó-Ð-r   rê   ré   )r   r   r   r   r]   rî   r'   rí   r  r?   r–   r™   rð   r€   r
   r   r   r¬   r“   rp   r    r*   r   r   r   r   r   �  s¹   „ ÙHðN˜W×6Ñ6ð N¸4ó Nð!˜ó !ð˜ó ð.˜ó .ð˜=¨4Ñ/ó ð $1ñ	2àð	2ð !ð	2ð 
ó		2ñ%˜bð %¨ð %°Dó %ó%ð˜Bó ð .Ð.¨rÑ2ô .r   r   c                   ón   ‡ — e Zd ZdZdededej                  ddfˆ fd„Zdde	d	eddfˆ fd
„Z
de	fd„Zˆ xZS )ÚFlowControlDataQueuez®FlowControlDataQueue resumes and pauses an underlying stream.

    It is a destination for parsed data.

    This class is deprecated and will be removed in version 4.0.
    rW   rX   rV   r#   Nc                óV   •— t         ‰| �  |¬«       d| _        || _        |dz  | _        y )N)rV   r   rZ   )Úsuperr'   rG   rA   Ú_limit)r&   rW   rX   rV   rf   s       €r   r'   zFlowControlDataQueue.__init__Ø  s.   ø€ ô 	‰Ñ˜dÐÔ#ØˆŒ
Ø!ˆŒØ˜a‘iˆ�r   rŸ   r¨   c                 óæ   •— t         ‰| �  ||«       | xj                  |z  c_        | j                  | j                  kD  r2| j                  j
                  s| j                  j                  «        y y y r%   )r  r¬   rG   r  rA   Ú_reading_pausedrª   )r&   rŸ   r¨   rf   s      €r   r¬   zFlowControlDataQueue.feed_dataà  sU   ø€ Ü‰Ñ˜$ Ô%Ø�
Š
�dÑ�
à�:‰:˜Ÿ™Ò#¨D¯N©N×,JÒ,JØ�N‰N×(Ñ(Õ*ð -KÐ#r   c              ƒ   ón  K  — | j                   sN| j                  sB| j                  rJ ‚| j                  j	                  «       | _        	 | j                  ƒ d {  –—†  | j                   r}| j                   j                  «       \  }}| xj                  |z  c_	        | j                  | j                  k  r0| j                  j                  r| j                  j                  «        |S | j                  �| j                  ‚t        ‚7 Œ«# t
        j                  t
        j                  f$ r	 d | _        ‚ w xY w­wr%   )rJ   rL   rM   rF   r›   r]   r  r  rØ   rG   r  rA   r   r‘   rO   r   )r&   rŸ   r¨   s      r   rp   zFlowControlDataQueue.readç  së   è ø€ Ø�|Š| D§I¢IØ—|’|Ð#Ð#ØŸ:™:×3Ñ3Ó5ˆDŒLðØ—l‘l×"Ð"ð �<Š<ØŸ™×-Ñ-Ó/‰JˆD�$Ø�JŠJ˜$Ñ�JØ�z‰z˜DŸK™KÒ'¨D¯N©N×,JÒ,JØ—‘×-Ñ-Ô/ØˆKØ�?‰?Ð&Ø—/‘/Ð!Üˆð #ùÜ×*Ñ*¬G×,@Ñ,@ÐAò Ø#�”Øðüs1   ‚AD5Á	D ÁDÁD ÁB'D5ÄD Ä,D2Ä2D5rê   )r   r   r   r   r	   rí   r]   rî   r'   r   r¬   rp   Ú__classcell__)rf   s   @r   r  r  Ð  sY   ø„ ñð Ø$ð Ø-0ð Ø;B×;TÑ;Tð à	õ ñ+˜bð +¨ð +°Dõ +ð˜B÷ r   r  )$r]   r`   rÐ   r¢   Úcollections.abcr   r   Útypingr   r   r   Úbase_protocolr	   Úhelpersr
   r   r   r   r   r   Úhttp_exceptionsr   Úlogr   Ú__all__r   rŒ   r   r    r4   r   ró   r   Ú__annotations__r   r  r   r   r   ú<module>r+     s¸   ðÜ Û Û 
Û ß /ß *Ñ *å '÷÷ õ )Ý  ð€ñ ˆTƒ]€ô!�	ô !ô˜' "™+ô ÷(ñ ÷"|3ñ |3ô~C˜ô CñL &7Ó%8€ˆu�\Ñ"Ó 8ô>.�˜‘ô >.ôB(˜9 R™=õ (r   