Ë
    [üàg£  ã                   óÔ   — d Z ddlZddlZddlmZmZmZmZmZ ddl	m
Z
 ddlmZmZ dZ G d„ d	«      Z G d
„ d«      Z ee«       G d„ de«      «       Z ee«       G d„ de«      «       Zy)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                   óX   — e Zd Zdeded   f   deedf   deeef   ddfd„Z	de
ddfd	„Zy)
Ú_stream_wrapperÚcoro.NÚargsÚkwargsÚreturnc                 óT   — t        j                  |«      | _        || _        || _        y ©N)ÚtypesÚ	coroutiner   r   r   )Úselfr   r   r   s       úV/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/aiohttp/payload_streamer.pyÚ__init__z_stream_wrapper.__init__$   s"   € ô —O‘O DÓ)ˆŒ	ØˆŒ	Øˆ�ó    Úwriterc              ƒ   ót   K  —  | j                   |g| j                  ¢­i | j                  ¤Žƒ d {  –—†  y 7 Œ­wr   )r   r   r   ©r   r   s     r   Ú__call__z_stream_wrapper.__call__.   s,   è ø€ Øˆd�i‰i˜Ð: §¡Ò:¨d¯k©kÑ:×:Ò:ús   ‚.8°6±8)Ú__name__Ú
__module__Ú__qualname__r   r   r   r   r   Ústrr   r	   r   © r   r   r   r   #   s_   „ ðà�s˜I d™OÐ+Ñ,ðð �C˜�H‰oðð �S˜#�X‘ð	ð
 
óð;Ð%9ð ;¸dô ;r   r   c                   ó@   — e Zd Zdeded   f   ddfd„Zdededefd„Zy)	r   r   .Nr   c                 óJ   — t        j                  dt        d¬«       || _        y )Nz5@streamer is deprecated, use async generators insteadé   )Ú
stacklevel)ÚwarningsÚwarnÚDeprecationWarningr   )r   r   s     r   r   zstreamer.__init__3   s    € Ü�‰ØCÜØõ	
ð
 ˆ�	r   r   r   c                 ó0   — t        | j                  ||«      S r   )r   r   )r   r   r   s      r   r   zstreamer.__call__;   s   € Ü˜tŸy™y¨$°Ó7Ð7r   )	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                   ó2   — e Zd Zdeddfd„Zddededefd„Zy)	ÚStreamWrapperPayloadr   r   Nc              ƒ   óB   K  — | j                  |«      ƒ d {  –—†  y 7 Œ­wr   ©Ú_valuer   s     r   ÚwritezStreamWrapperPayload.writeA   ó   è ø€ Ø�k‰k˜&Ó!×!Ò!úó   ‚—˜ÚencodingÚerrorsc                 ó   — t        d«      ‚)NzUnable to decode.)Ú	TypeError)r   r4   r5   s      r   ÚdecodezStreamWrapperPayload.decodeD   s   € ÜÐ+Ó,Ð,r   )zutf-8Ústrict)r   r    r!   r	   r1   r"   r8   r#   r   r   r-   r-   ?   s0   „ ð"Ð"6ð "¸4ó "ñ-˜sð -°cð -Èô -r   r-   c                   ó@   ‡ — e Zd Zdedededdfˆ fd„Zdeddfd„Zˆ xZS )	ÚStreamPayloadÚvaluer   r   r   Nc                 ó6   •— t        ‰| �   |«       g|¢­i |¤Ž y r   )Úsuperr   )r   r<   r   r   Ú	__class__s       €r   r   zStreamPayload.__init__J   s   ø€ Ü‰Ñ™›Ð2 4Ò2¨6Ó2r   r   c              ƒ   óB   K  — | j                  |«      ƒ d {  –—†  y 7 Œ­wr   r/   r   s     r   r1   zStreamPayload.writeM   r2   r3   )r   r    r!   r   r   r	   r1   Ú__classcell__)r?   s   @r   r;   r;   H   s8   ø„ ð3˜cð 3¨#ð 3¸ð 3Àõ 3ð"Ð"6ð "¸4÷ "r   r;   )Ú__doc__r   r(   Útypingr   r   r   r   r   Úabcr	   Úpayloadr
   r   Ú__all__r   r   r-   r;   r#   r   r   ú<module>rG      sx   ðñó0 Û ß 8Õ 8å %ß *à
€÷;ñ ;÷
8ñ 
8ñ ˆoÓô-˜7ó -ó ð-ñ ˆhÓô"Ð(ó "ó ñ"r   