� ���gT ���ddlmZddlZddlZddlZddlZddlmZddlm Z m Z ej d��dZ ej ejeee fe fZejeejee ffZdd �Zdd�Z ddd�ZdS)�)� annotationsN)�BytesIO�)�_TYPE_FIELD_VALUE_TUPLE� RequestFieldzutf-8��return�strc�r�tjtjd�������S)zN Our embarrassingly-simple replacement for mimetools.choose_boundary. �)�binascii�hexlify�os�urandom�decode���`/home/asafur/pinokio/api/open-webui.git/app/env/lib/python3.11/site-packages/urllib3/filepost.py�choose_boundaryrs)�� � �B�J�r�N�N� +� +� 2� 2� 4� 4�4r�fields� _TYPE_FIELDS�typing.Iterable[RequestField]c#��K�t|tj��r|���}n|}|D],}t|t��r|V��t j|�V��-dS)z� Iterate over fields. Supports list of (k, v) tuples and dicts, and lists of :class:`~urllib3.fields.RequestField`. N)� isinstance�typing�Mapping�itemsr� from_tuples)r�iterable�fields r�iter_field_objectsr!s}�����&�&�.�)�)���<�<�>�>������3�3�� �e�\� *� *� 3��K�K�K�K��*�E�2� 2� 2� 2� 2� 3�3r�boundary� str | None�tuple[bytes, str]c���t��}|�t��}t|��D]�}|�d|�d��d����t |���|�����|j}t|t��rt|��}t|t��r#t |���|��n|�|��|�d����|�d|�d��d����d|��}|� ��|fS)a� Encode a dictionary of ``fields`` using the multipart/form-data MIME format. :param fields: Dictionary of fields or list of (key, :class:`~urllib3.fields.RequestField`). Values are processed by :func:`urllib3.fields.RequestField.from_tuples`. :param boundary: If not specified, then a random boundary will be generated using :func:`urllib3.filepost.choose_boundary`. Nz--z zlatin-1s z-- zmultipart/form-data; boundary=) rrr!�write�encode�writer�render_headers�datar�intr �getvalue)rr"�bodyr r*� content_types r�encode_multipart_formdatar/3sM�� �9�9�D���"�$�$��#�F�+�+���� � � �&��&�&�&�-�-�i�8�8�9�9�9��t� � ���5�/�/�1�1�2�2�2��z�� �d�C� � � ��t�9�9�D� �d�C� � � � �4�L�L� � �t� $� $� $� $� �J�J�t� � � � � � �7������J�J�$�H�$�$�$�+�+�I�6�6�7�7�7�>�H�>�>�L� �=�=�?�?�L� (�(r)r r )rrr r)N)rrr"r#r r$)� __future__rr �codecsrr�iorrrr�lookupr(�Sequence�Union�tupler �_TYPE_FIELDS_SEQUENCErrrr!r/rrr�<module>r8s��"�"�"�"�"�"����� � � � � � � � � � � � �������9�9�9�9�9�9�9�9� ���w� � �� "���� �L��s�3�3�4�l�B�C����|�� �N�3�/�/�0�2�� � 5�5�5�5�3�3�3�3�.26�&)�&)�&)�&)�&)�&)�&)r
Memory