File manager - Edit - /opt/saltstack/salt/lib/python3.10/site-packages/aiohttp/__pycache__/payload_streamer.cpython-310.pyc
Back
o ;j� � @ s� d Z ddlZddlZddlmZmZ ddlmZ ddlm Z ddl mZmZ dZ G d d � d �ZG dd� d�Zee�G d d� de��Zee�G dd� 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)� Awaitable�Callable)�Any� )�AbstractStreamWriter)�Payload�payload_type)�streamerc @ sT e Zd Zdeded f deedf deeef ddfdd�Z d e ddfd d�ZdS )�_stream_wrapper�coro.N�args�kwargs�returnc C s t �|�| _|| _|| _d S �N)�types� coroutiner r r )�selfr r r � r �L/opt/saltstack/salt/lib/python3.10/site-packages/aiohttp/payload_streamer.py�__init__% s z_stream_wrapper.__init__�writerc � s( �| j |g| j�R i | j��I d H d S r )r r r �r r r r r �__call__/ s �&z_stream_wrapper.__call__)�__name__� __module__�__qualname__r r �tupler �dict�strr r r r r r r r $ s � � � � r c @ s@ e Zd Zdeded f ddfdd�Zdededefd d �ZdS )r r .Nr c C s t jdtdd� || _d S )Nz5@streamer is deprecated, use async generators instead� )� stacklevel)�warnings�warn�DeprecationWarningr )r r r r r r 4 s � zstreamer.__init__r r c O s t | j||�S r )r r )r r r r r r r <