ó
    	[h£  ã                   óÔ   • S r SSKrSSKrSSKJrJrJrJrJr  SSK	J
r
  SSKJrJr  Sr " S S	5      r " S
 S5      r\" \5       " S S\5      5       r\" \5       " S S\5      5       rg)am  
Payload implementation for coroutines as data provider.

As a simple case, you can upload data from file::

   @aiohttp.streamer
   async def file_sender(writer, file_name=None):
      with open(file_name, 'rb') as f:
          chunk = f.read(2**16)
          while chunk:
              await writer.write(chunk)

              chunk = f.read(2**16)

Then you can use `file_sender` like this:

    async with session.post('http://httpbin.org/post',
                            data=file_sender(file_name='huge_file')) as resp:
        print(await resp.text())

..note:: Coroutine must accept `writer` as first argument

é    N)ÚAnyÚ	AwaitableÚCallableÚDictÚTupleé   )ÚAbstractStreamWriter)ÚPayloadÚpayload_type)Ústreamerc                   ód   • \ rS rSrS\S\S   4   S\\S4   S\\	\4   SS4S jr
S	\SS4S
 jrSrg)Ú_stream_wrapperé#   Úcoro.NÚargsÚkwargsÚreturnc                 óR   • [         R                  " U5      U l        X l        X0l        g ©N)ÚtypesÚ	coroutiner   r   r   )Úselfr   r   r   s       Úg/home/gothic/public_html/Fooocus/fooocus_env/lib64/python3.13/site-packages/aiohttp/payload_streamer.pyÚ__init__Ú_stream_wrapper.__init__$   s   € ô —O’O DÓ)ˆŒ	ØŒ	Ø�ó    Úwriterc              ƒ   ót   #   • U R                   " U/U R                  Q70 U R                  D6I S h  v•N   g  N7fr   )r   r   r   ©r   r   s     r   Ú__call__Ú_stream_wrapper.__call__.   s)   é € Ø�iŠi˜Ð: §¡Ò:¨d¯k©kÑ:×:Ó:ùs   ‚.8°6±8)r   r   r   )Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r   r   r   r   r   Ústrr   r	   r    Ú__static_attributes__© r   r   r   r   #   s_   † ðà�s˜I d™OÐ+Ñ,ðð �C˜�H‰oðð �S˜#�X‘ð	ð
 
ôð;Ð%9ð ;¸d÷ ;r   r   c                   óL   • \ rS rSrS\S\S   4   SS4S jrS\S\S\4S	 jr	S
r
g)r   é2   r   .Nr   c                 óD   • [         R                  " S[        SS9  Xl        g )Nz5@streamer is deprecated, use async generators insteadé   )Ú
stacklevel)ÚwarningsÚwarnÚDeprecationWarningr   )r   r   s     r   r   Ústreamer.__init__3   s   € Ü�ŠØCÜØò	
ð
 �	r   r   r   c                 ó.   • [        U R                  X5      $ r   )r   r   )r   r   r   s      r   r    Ústreamer.__call__;   s   € Ü˜tŸy™y¨$Ó7Ð7r   )r   )r"   r#   r$   r%   r   r   r   r   r   r    r'   r(   r   r   r   r   2   s=   † ð˜X c¨9°T©?Ð&:Ñ;ð Àô ð8˜cð 8¨Sð 8°_÷ 8r   r   c                   ó@   • \ rS rSrS\SS4S jrS
S\S\S\4S jjrS	rg)ÚStreamWrapperPayloadé?   r   r   Nc              ƒ   óB   #   • U R                  U5      I S h  v•N   g  N7fr   ©Ú_valuer   s     r   ÚwriteÚStreamWrapperPayload.writeA   ó   é € Ø�k‰k˜&Ó!×!Ó!ùó   ‚—˜ÚencodingÚerrorsc                 ó   • [        S5      e)NzUnable to decode.)Ú	TypeError)r   r>   r?   s      r   ÚdecodeÚStreamWrapperPayload.decodeD   s   € ÜÐ+Ó,Ð,r   r(   )zutf-8Ústrict)	r"   r#   r$   r%   r	   r:   r&   rB   r'   r(   r   r   r5   r5   ?   s5   † ð"Ð"6ð "¸4ô "ñ-˜sð -°cð -È÷ -ð -r   r5   c                   óN   ^ • \ rS rSrS\S\S\SS4U 4S jjrS\SS4S	 jrS
rU =r	$ )ÚStreamPayloadéH   Úvaluer   r   r   Nc                 ó8   >• [         TU ]  " U" 5       /UQ70 UD6  g r   )Úsuperr   )r   rH   r   r   Ú	__class__s       €r   r   ÚStreamPayload.__init__J   s   ø€ Ü‰Ò™›Ð2 4Ò2¨6Ó2r   r   c              ƒ   óB   #   • U R                  U5      I S h  v•N   g  N7fr   r8   r   s     r   r:   ÚStreamPayload.writeM   r<   r=   r(   )
r"   r#   r$   r%   r   r   r	   r:   r'   Ú__classcell__)rK   s   @r   rF   rF   H   s=   ø† ð3˜cð 3¨#ð 3¸ð 3À÷ 3ð"Ð"6ð "¸4÷ "ò "r   rF   )Ú__doc__r   r.   Útypingr   r   r   r   r   Úabcr	   Úpayloadr
   r   Ú__all__r   r   r5   rF   r(   r   r   Ú<module>rU      sx   ðñó0 Û ß 8Õ 8å %ß *à
€÷;ñ ;÷
8ñ 
8ñ ˆoÓô-˜7ó -ó ð-ñ ˆhÓô"Ð(ó "ó ñ"r   