+
    PV-j±  ã                   óÖ   € R t ^ RIt^ RIt^ RIHtHt ^ RIHt ^RIH	t	 ^RI
HtHt Rt ! R R4      t ! R	 R4      t]! ]4       ! R
 R]4      4       t]! ]4       ! R R]4      4       tR# )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)Ú	AwaitableÚCallable©ÚAny©ÚAbstractStreamWriter)ÚPayloadÚpayload_typeÚstreamerc                   óD   a € ] tR t^$t o V 3R lR ltV 3R lR ltRtV tR# )Ú_stream_wrapperc                ó|   <€ V ^8„  d   QhRS[ RS[R,          3,          RS[S[R3,          RS[S[S[3,          RR/# )é   Úcoro.NÚargsÚkwargsÚreturn)r   r   Útupler   ÚdictÚstr)ÚformatÚ__classdict__s   "€Úi/Volumes/fast/ai/experiments/ui-tars-smoke/.venv/lib/python3.14/site-packages/aiohttp/payload_streamer.pyÚ__annotate__Ú_stream_wrapper.__annotate__%   sQ   ø€ ÷ ñ á�s™I d�OÐ+Õ,ðñ ‘C˜�H�oðñ ‘S™#�X•ð	ð
 
ñó    c                óT   € \         P                  ! V4      V n        W n        W0n        R # ©N)ÚtypesÚ	coroutiner   r   r   )Úselfr   r   r   s   &&&&r   Ú__init__Ú_stream_wrapper.__init__%   s   € ô —O’O DÓ)ˆŒ	ØŒ	ØŽr   c                ó$   <€ V ^8„  d   QhRS[ RR/# ©r   Úwriterr   Nr   )r   r   s   "€r   r   r   /   s   ø€ ÷ ;ñ ;Ñ%9ð ;¸dñ ;r   c              ƒ  óv   "  € V P                   ! V.V P                  O5/ V P                  B G R j  x€L
  R #  L5ir   )r   r   r   ©r    r%   s   &&r   Ú__call__Ú_stream_wrapper.__call__/   s)   é € Ø�iŠi˜Ð: §¡Ò:¨d¯k©kÑ:×:Ô:ùs   ‚.9°7±9)r   r   r   N©Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r!   r(   Ú__static_attributes__Ú__classdictcell__©r   s   @r   r   r   $   s   ø‡ € ÷ð ÷;ö ;r   r   c                   óD   a € ] tR t^3t o V 3R lR ltV 3R lR ltRtV tR# )r
   c                óF   <€ V ^8„  d   QhRS[ RS[R,          3,          RR/# )r   r   .Nr   )r   r   )r   r   s   "€r   r   Ústreamer.__annotate__4   s)   ø€ ÷ ñ ™X c©9°T­?Ð&:Õ;ð Àñ r   c                óL   € \         P                  ! R \        ^R7       Wn        R# )z5@streamer is deprecated, use async generators instead)Ú
stacklevelN)ÚwarningsÚwarnÚDeprecationWarningr   )r    r   s   &&r   r!   Ústreamer.__init__4   s   € Ü�ŠØCÜØõ	
ð
 Ž	r   c                ó,   <€ V ^8„  d   QhRS[ RS[ RS[/# )r   r   r   r   )r   r   )r   r   s   "€r   r   r4   <   s"   ø€ ÷ 8ñ 8™cð 8©Sð 8±_ñ 8r   c                ó.   € \        V P                  W4      # r   )r   r   )r    r   r   s   &*,r   r(   Ústreamer.__call__<   s   € Ü˜tŸy™y¨$Ó7Ð7r   )r   Nr*   r1   s   @r   r
   r
   3   s   ø‡ € ÷ð ÷8ö 8r   c                   óH   a € ] tR t^@t o V 3R lR ltRV 3R lR lltRtV tR# )ÚStreamWrapperPayloadc                ó$   <€ V ^8„  d   QhRS[ RR/# r$   r   )r   r   s   "€r   r   Ú!StreamWrapperPayload.__annotate__B   ó   ø€ ÷ "ñ "Ñ"6ð "¸4ñ "r   c              ƒ  óD   "  € V P                  V4      G R j  x€L
  R #  L5ir   ©Ú_valuer'   s   &&r   ÚwriteÚStreamWrapperPayload.writeB   ó   é € Ø�k‰k˜&Ó!×!Ô!ùó   ‚ —˜ c                ó,   <€ V ^8„  d   QhRS[ RS[ RS[ /# )r   ÚencodingÚerrorsr   )r   )r   r   s   "€r   r   rA   E   s"   ø€ ÷ -ñ -™sð -±cð -Éñ -r   c                ó   € \        R 4      h)zUnable to decode.)Ú	TypeError)r    rK   rL   s   &&&r   ÚdecodeÚStreamWrapperPayload.decodeE   s   € ÜÐ+Ó,Ð,r   © N)zutf-8Ústrict)r+   r,   r-   r.   rF   rO   r/   r0   r1   s   @r   r?   r?   @   s   ø‡ € ÷"ð "÷-÷ -ð -r   r?   c                   óP   a a€ ] tR t^It oV3R lV 3R lltV3R lR ltRtVtV ;t# )ÚStreamPayloadc                ó0   <€ V ^8„  d   QhRS[ RS[ RS[ RR/# )r   Úvaluer   r   r   Nr   )r   r   s   "€r   r   ÚStreamPayload.__annotate__K   s)   ø€ ÷ 3ñ 3™cð 3©#ð 3¹ð 3Àñ 3r   c                ó:   <€ \         SV `  ! V! 4       .VO5/ VB  R # r   )Úsuperr!   )r    rV   r   r   Ú	__class__s   &&*,€r   r!   ÚStreamPayload.__init__K   s   ø€ Ü‰Ò™›Ð2 4Ò2¨6Ô2r   c                ó$   <€ V ^8„  d   QhRS[ RR/# r$   r   )r   r   s   "€r   r   rW   N   rB   r   c              ƒ  óD   "  € V P                  V4      G R j  x€L
  R #  L5ir   rD   r'   s   &&r   rF   ÚStreamPayload.writeN   rH   rI   rQ   )	r+   r,   r-   r.   r!   rF   r/   r0   Ú__classcell__)rZ   r   s   @@r   rT   rT   I   s   ù‡ € ÷3ó 3÷"÷ "ð "r   rT   )r
   )Ú__doc__r   r7   Úcollections.abcr   r   Útypingr   Úabcr   Úpayloadr   r	   Ú__all__r   r
   r?   rT   rQ   r   r   Ú<module>rf      sx   ðñó0 Û ß /Ý å %ß *à
€÷;ñ ;÷
8ñ 
8ñ ˆoÓô-˜7ó -ó ð-ñ ˆhÓô"Ð(ó "ó ò"r   