� E�g����dZddlZddlZddlmZmZmZmZmZddl m Z ddl m Z m Z dZGd�d ��ZGd �d ��Ze e��Gd �d e ����Ze e��Gd�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�r�eZdZdededfdeedfdeeefddfd�Z de ddfd �Z dS) �_stream_wrapper�coro.N�args�kwargs�returnc�T�tj|��|_||_||_dS�N)�types� coroutinerrr)�selfrrrs �h/home/asafur/pinokio/api/open-webui.git/app/env/lib/python3.11/site-packages/aiohttp/payload_streamer.py�__init__z_stream_wrapper.__init__$s'�� �O�D�)�)�� ��� ��� � � ��writerc��LK�|j|g|j�Ri|j���d{V��dSr)rrr�rrs r�__call__z_stream_wrapper.__call__.sD�����d�i��:���:�:�:�d�k�:�:�:�:�:�:�:�:�:�:�:r) �__name__� __module__� __qualname__rrrrr�strrr r�rrrr#s���������s�I�d�O�+�,���C��H�o���S�#�X�� � � ����;�%9�;�d�;�;�;�;�;�;rrc�N�eZdZdededfddfd�Zdededefd�ZdS) r r.Nrc�L�tjdtd���||_dS)Nz5@streamer is deprecated, use async generators instead�)� stacklevel)�warnings�warn�DeprecationWarningr)rrs rrzstreamer.__init__3s1��� � C� �� � � � � �� � � rrrc�.�t|j||��Sr)rr)rrrs rrzstreamer.__call__;s���t�y�$��7�7�7r) rr r!rrrrrrr#rrr r 2sm�������X�c�9�T�?�&:�;�������8�c�8�S�8�_�8�8�8�8�8�8rr c�4�eZdZdeddfd�Zd dededefd �ZdS) �StreamWrapperPayloadrrNc��@K�|�|���d{V��dSr��_valuers r�writezStreamWrapperPayload.writeA�0�����k�k�&�!�!�!�!�!�!�!�!�!�!�!r�utf-8�strict�encoding�errorsc� �td���)NzUnable to decode.)� TypeError)rr5r6s r�decodezStreamWrapperPayload.decodeDs���+�,�,�,r)r3r4)rr r!r r1r"r9r#rrr-r-?se������"�"6�"�4�"�"�"�"�-�-�s�-�c�-��-�-�-�-�-�-rr-c�@��eZdZdedededdf�fd� Zdeddfd�Z�xZS) � StreamPayload�valuerrrNc�R��t��j|��g|�Ri|��dSr)�superr)rr<rr� __class__s �rrzStreamPayload.__init__Js6������������2�4�2�2�2�6�2�2�2�2�2rrc��@K�|�|���d{V��dSrr/rs rr1zStreamPayload.writeMr2r)rr r!rrr r1� __classcell__)r?s@rr;r;Hs|�������3�c�3�#�3��3��3�3�3�3�3�3�"�"6�"�4�"�"�"�"�"�"�"�"rr;)�__doc__rr(�typingrrrrr�abcr �payloadr r �__all__rr r-r;r#rr�<module>rGsY����0 � � � �����8�8�8�8�8�8�8�8�8�8�8�8�8�8�%�%�%�%�%�%�*�*�*�*�*�*�*�*� �� ;� ;� ;� ;� ;� ;� ;� ;� 8� 8� 8� 8� 8� 8� 8� 8���o���-�-�-�-�-�7�-�-���-���h���"�"�"�"�"�(�"�"���"�"�"r
Memory