Viewing File: /opt/alt/python38/lib64/python3.8/site-packages/aiohttp/__pycache__/payload_streamer.cpython-38.pyc

U

'7`6@sdZddlZddlZddlmZmZmZmZmZddl	m
Z
ddlmZm
Z
dZGdd	d	ZGd
ddZe
eGdd
d
eZe
eGdddeZdS)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)Payloadpayload_type)streamerc@sLeZdZededfeedfeeefddddZ	e
ddddZdS)	_stream_wrapper.N)coroargskwargsreturncCst||_||_||_dSN)types	coroutiner
rr)selfr
rrrK/opt/alt/python38/lib64/python3.8/site-packages/aiohttp/payload_streamer.py__init__#sz_stream_wrapper.__init__writerrcs |j|f|j|jIdHdSr)r
rrrrrrr__call__-sz_stream_wrapper.__call__)__name__
__module____qualname__rrrrrstrrrrrrrrr"s


rc@s:eZdZededfddddZeeedddZdS)	r.N)r
rcCstjdtdd||_dS)Nz5@streamer is deprecated, use async generators instead)
stacklevel)warningswarnDeprecationWarningr
)rr
rrrr2szstreamer.__init__)rrrcOst|j||Sr)rr
)rrrrrrr:szstreamer.__call__)	rrrrrrrrrrrrrr1src@seZdZeddddZdS)StreamWrapperPayloadNrcs||IdHdSrZ_valuerrrrwrite@szStreamWrapperPayload.write)rrrrr'rrrrr%>sr%cs8eZdZeeeddfddZeddddZZS)
StreamPayloadN)valuerrrcstj|f||dSr)superr)rr)rr	__class__rrrFszStreamPayload.__init__rcs||IdHdSrr&rrrrr'IszStreamPayload.write)rrrrrrr'
__classcell__rrr+rr(Dsr()__doc__rr"typingrrrrrabcrZpayloadr	r
__all__rrr%r(rrrr<module>s

Back to Directory File Manager