Viewing File: /opt/alt/python38/lib64/python3.8/site-packages/aiohttp/__pycache__/payload_streamer.cpython-38.pyc
U
'7`6 @ s d Z ddlZddlZddlmZmZmZmZmZ ddl m
Z
ddlmZm
Z
dZG dd d ZG d
d dZe
eG dd
d
eZe
eG dd deZdS )al Payload implemenation 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 AwaitableCallableDictTuple )AbstractStreamWriter)Payloadpayload_type)streamerc @ sL e Zd Zeded f eedf eeef ddddZ e
ddddZdS ) _stream_wrapper.N)coroargskwargsreturnc C s t || _|| _|| _d S N)types coroutiner
r r )selfr
r r r K/opt/alt/python38/lib64/python3.8/site-packages/aiohttp/payload_streamer.py__init__# s z_stream_wrapper.__init__writerr c s | j |f| j| jI d H d S r )r
r r r r r r r __call__- s z_stream_wrapper.__call__)__name__
__module____qualname__r r r r r strr r r r r r r r "