HEX
Server: Apache/2.4.52 (Ubuntu)
System: Linux spn-python 5.15.0-89-generic #99-Ubuntu SMP Mon Oct 30 20:42:41 UTC 2023 x86_64
User: arjun (1000)
PHP: 8.1.2-1ubuntu2.20
Disabled: NONE
Upload Files
File: //usr/local/lib/python3.10/dist-packages/aiohttp/__pycache__/payload_streamer.cpython-310.pyc
o

���g��@s�dZddlZddlZddlmZmZmZmZmZddl	m
Z
ddlmZm
Z
dZGdd	�d	�ZGd
d�d�Ze
e�Gdd
�d
e��Ze
e�Gdd�de��ZdS)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@sTeZdZdededfdeedfdeeefddfdd�Z	d	e
ddfd
d�ZdS)�_stream_wrapper�coro.N�args�kwargs�returncCst�|�|_||_||_dS�N)�types�	coroutiner
rr)�selfr
rr�r�C/usr/local/lib/python3.10/dist-packages/aiohttp/payload_streamer.py�__init__$s
z_stream_wrapper.__init__�writerc�s(�|j|g|j�Ri|j��IdHdSr)r
rr�rrrrr�__call__.s�&z_stream_wrapper.__call__)�__name__�
__module__�__qualname__rrrrr�strrrrrrrrr#s�
�
�
�
rc@s@eZdZdededfddfdd�Zdededefd	d
�ZdS)rr
.NrcCstjdtdd�||_dS)Nz5@streamer is deprecated, use async generators instead�)�
stacklevel)�warnings�warn�DeprecationWarningr
)rr
rrrr3s�
zstreamer.__init__rrcOst|j||�Sr)rr
)rrrrrrr;szstreamer.__call__)	rrrrrrrrrrrrrr2src@s6eZdZdeddfdd�Zdded	edefd
d�ZdS)
�StreamWrapperPayloadrrNc���|�|�IdHdSr��_valuerrrr�writeA��zStreamWrapperPayload.write�utf-8�strict�encoding�errorscCstd��)NzUnable to decode.)�	TypeError)rr,r-rrr�decodeDszStreamWrapperPayload.decode)r*r+)rrrrr(rr/rrrrr$?sr$cs@eZdZdedededdf�fdd�Zdeddfd	d
�Z�ZS)�
StreamPayload�valuerrrNcs t�j|�g|�Ri|��dSr)�superr)rr1rr��	__class__rrrJs zStreamPayload.__init__rc�r%rr&rrrrr(Mr)zStreamPayload.write)rrrrrrr(�
__classcell__rrr3rr0Hsr0)�__doc__rr!�typingrrrrr�abcr�payloadr	r
�__all__rrr$r0rrrr�<module>s