� K�g���v�ddlmZddlZddlZddlmZddlmZm Z m Z m Z m Z m Z ddlmZddlmZmZddlmZdd lmZmZmZmZmZmZdd lmZmZd gZGd �d ee��Z Gd �de��Z!Gd�de��Z"Gd�dee��Z#d2d�Z$d3d�Z%d4d!�Z&d5d$�Z'd6d&�Z(d7d)�Z) d8d9d.�Z* d:d;d1�Z+dS)<�)� annotationsN)�dumps)�Any� AsyncIterable� AsyncIterator�Iterable�Iterator�Mapping)� urlencode�)� StreamClosed�StreamConsumed)�MultipartStream)�AsyncByteStream�RequestContent� RequestData� RequestFiles�ResponseContent�SyncByteStream)�peek_filelike_length�primitive_value_to_str� ByteStreamc�&�eZdZd d�Zd d�Zd d �Zd S)r�stream�bytes�return�Nonec��||_dS�N��_stream��selfrs �^/home/asafur/pinokio/api/open-webui.git/app/env/lib/python3.11/site-packages/httpx/_content.py�__init__zByteStream.__init__ s ���� � � ��Iterator[bytes]c#�K�|jV�dSrr �r#s r$�__iter__zByteStream.__iter__#s�����l�����r&�AsyncIterator[bytes]c�K�|jWV�dSrr r)s r$� __aiter__zByteStream.__aiter__&s�����l������r&N)rrrr�rr'�rr+)�__name__� __module__� __qualname__r%r*r-�r&r$rrsP�������������������r&c�"�eZdZdZd d�Zd d�Zd S) �IteratorByteStream�r�Iterable[bytes]rrc�T�||_d|_tj|��|_dS�NF)r!�_is_stream_consumed�inspect� isgenerator� _is_generatorr"s r$r%zIteratorByteStream.__init__-s*���� �#(�� �$�0��8�8����r&r'c#�*K�|jr|jrt���d|_t|jd��rJ|j�|j��}|r'|V�|j�|j��}|�%dSdS|jD]}|V��dS)NT�read)r:r=r�hasattrr!r?� CHUNK_SIZE�r#�chunk�parts r$r*zIteratorByteStream.__iter__2s����� � #� #��(:� #� �"�"� "�#'�� � �4�<�� (� (� ��L�%�%�d�o�6�6�E�� ;�� � � �� �)�)�$�/�:�:��� ;� ;� ;� ;� ;� � � � ��� � � � � � r&N)rr7rrr.)r0r1r2rAr%r*r3r&r$r5r5*sA�������J�9�9�9�9� �����r&r5c�"�eZdZdZd d�Zd d�Zd S) �AsyncIteratorByteStreamr6r�AsyncIterable[bytes]rrc�T�||_d|_tj|��|_dSr9)r!r:r;� isasyncgenr=r"s r$r%z AsyncIteratorByteStream.__init__Fs*���� �#(�� �$�/��7�7����r&r+c�RK�|jr|jrt���d|_t|jd��rW|j�|j���d{V��}|r.|WV�|j�|j���d{V��}|�,dSdS|j23d{V��}|WV�� 6dS)NT�aread)r:r=rr@r!rKrArBs r$r-z!AsyncIteratorByteStream.__aiter__Ks���� � #� #��(:� #� �"�"� "�#'�� � �4�<�� )� )� ��,�,�,�T�_�=�=�=�=�=�=�=�=�E�� B�� � � � �"�l�0�0���A�A�A�A�A�A�A�A��� B� B� B� B� B� #�l� � � � � � � �d�� � � � � �+�l�ls�B&N)rrGrrr/)r0r1r2rAr%r-r3r&r$rFrFCsA�������J�8�8�8�8� �����r&rFc�"�eZdZdZdd�Zd d�ZdS) �UnattachedStreamz� If a request or response is serialized using pickle, then it is no longer attached to a stream for I/O purposes. Any stream operations should result in `httpx.StreamClosed`. rr'c��t���r�r r)s r$r*zUnattachedStream.__iter__cs ���n�n�r&r+c�"K�t���rrOr)s r$r-zUnattachedStream.__aiter__fs�����n�n�r&Nr.r/)r0r1r2�__doc__r*r-r3r&r$rMrM\sF�������� ���������r&rM�content�4str | bytes | Iterable[bytes] | AsyncIterable[bytes]r�7tuple[dict[str, str], SyncByteStream | AsyncByteStream]c�R�t|ttf��rat|t��r|�d��n|}t |��}|rdt|��ini}|t |��fSt|t ��rMt|t��s8t|��}|�ddi}ndt|��i}|t|��fSt|t��rddi}|t|��fStdt|�������)N�utf-8�Content-LengthzTransfer-Encoding�chunkedzUnexpected type for 'content', )� isinstancer�str�encode�lenrr�dictrr5rrF� TypeError�type)rR�body�content_length�headers�content_length_or_nones r$�encode_contentrdks3���'�E�3�<�(�(�9�*4�W�c�*B�*B�O�w�~�~�g�&�&�&����T����=A�I�#�S��%8�%8�9�9�r��� �4�(�(�(�(� �G�X� &� &�9�z�'�4�/H�/H�9� "6�g�!>�!>�� !� )�*�I�6�G�G�'��-C�)D�)D�E�G��*�7�3�3�3�3� �G�]� +� +�9�&� �2���/��8�8�8�8� �G�d�7�m�m�G�G� H� H�Hr&�datar�!tuple[dict[str, str], ByteStream]c���g}|���D]g\�}t|ttf��r"|��fd�|D�����C|��t |��f���ht|d����d��}tt|����}d}||d�}|t|��fS)Nc�2��g|]}�t|��f��Sr3)r)�.0�item�keys �r$� <listcomp>z*encode_urlencoded_data.<locals>.<listcomp>�s'���U�U�U�t��%;�D�%A�%A�B�U�U�Ur&T)�doseqrVz!application/x-www-form-urlencoded�rWz Content-Type) �itemsrY�list�tuple�extend�appendrr r[rZr\r)re� plain_data�valuer`ra� content_typerbrks @r$�encode_urlencoded_datarw�s�����J��j�j�l�l�D�D� ��U� �e�d�E�]� +� +� D� � � �U�U�U�U�u�U�U�U� V� V� V� V� � � �s�$:�5�$A�$A�B� C� C� C� C� �Z�t� ,� ,� ,� 3� 3�G� <� <�D���T���^�^�N�6�L�!/��N�N�G� �J�t�$�$� $�$r&�filesr�boundary� bytes | None�&tuple[dict[str, str], MultipartStream]c�V�t|||���}|���}||fS)N)rerxry)r� get_headers)rerxry� multipartrbs r$�encode_multipart_datar�s4�� �T���J�J�J�I��#�#�%�%�G� �I� �r&�textrZc��|�d��}tt|����}d}||d�}|t|��fS)NrVztext/plain; charset=utf-8rn�r[rZr\r)r�r`rarvrbs r$� encode_textr��sI�� �;�;�w� � �D���T���^�^�N�.�L�!/��N�N�G� �J�t�$�$� $�$r&�htmlc��|�d��}tt|����}d}||d�}|t|��fS)NrVztext/html; charset=utf-8rnr�)r�r`rarvrbs r$� encode_htmlr��sI�� �;�;�w� � �D���T���^�^�N�-�L�!/��N�N�G� �J�t�$�$� $�$r&�jsonrc��t|ddd����d��}tt|����}d}||d�}|t |��fS)NF)�,�:)� ensure_ascii� separators� allow_nanrVzapplication/jsonrn)� json_dumpsr[rZr\r)r�r`rarvrbs r$� encode_jsonr��se�� � �5�Z�5� � � � �f�W�o�o� ���T���^�^�N�%�L�!/��N�N�G� �J�t�$�$� $�$r&�RequestContent | None�RequestData | None�RequestFiles | None� Any | Nonec�<�|�Bt|t��s-d}tj|td���t |��S|�t |��S|rt |pi||��S|rt|��S|�t|��Sitd��fS)z� Handles encoding the given `content`, `data`, `files`, and `json`, returning a two-tuple of (<headers>, <stream>). Nz5Use 'content=<...>' to upload raw bytes/text content.�)� stacklevelr&) rYr �warnings�warn�DeprecationWarningrdrrwr�r)rRrerxr�ry�messages r$�encode_requestr��s��� �� �4�� 9� 9��J��� �g�1�a�@�@�@�@��d�#�#�#����g�&�&�&� �!�$�T�Z�R���A�A�A� �!�%�d�+�+�+� � ��4� � � � �z�#��� �r&�ResponseContent | None� str | Nonec��|�t|��S|�t|��S|�t|��S|�t|��Sit d��fS)zc Handles encoding the given `content`, returning a two-tuple of (<headers>, <stream>). Nr&)rdr�r�r�r)rRr�r�r�s r$�encode_responser��se�����g�&�&�&� � ��4� � � � � ��4� � � � � ��4� � � � �z�#��� �r&)rRrSrrT)rerrrf)rerrxrryrzrr{)r�rZrrf)r�rZrrf)r�rrrf)NNNNN) rRr�rer�rxr�r�r�ryrzrrT)NNNN) rRr�r�r�r�r�r�r�rrT),� __future__rr;r�r�rr��typingrrrrr r � urllib.parser � _exceptionsr r� _multipartr�_typesrrrrrr�_utilsrr�__all__rr5rFrMrdrwrr�r�r�r�r�r3r&r$�<module>r�s���"�"�"�"�"�"���������$�$�$�$�$�$�����������������#�"�"�"�"�"�5�5�5�5�5�5�5�5�'�'�'�'�'�'�����������������A�@�@�@�@�@�@�@� �.��������.�������������2�����o����2 � � � � ��� � � �I�I�I�I�: %� %� %� %� ����%�%�%�%�%�%�%�%�%�%�%�%�&*�#�!%��!� � � � � �H'+���� ������r&
Memory