
    nbi                        d dl mZ d dlZd dlZd dlZd dlZd dlmZ ddlm	Z	m
Z
 ddlmZ  ej        d          d         ZddZddZ	 dddZdS )    )annotationsN)BytesIO   )_TYPE_FIELD_VALUE_TUPLE_TYPE_FIELDS)RequestFieldzutf-8   returnstrc                 r    t          j        t          j        d                                                    S )zN
    Our embarrassingly-simple replacement for mimetools.choose_boundary.
       )binasciihexlifyosurandomdecode     g/var/www/html/mdtn/previsions/meteo_cartes/venv/lib/python3.11/site-packages/urllib3_future/filepost.pychoose_boundaryr      s)     BJrNN++22444r   fieldsr   typing.Iterable[RequestField]c              #     K   t          | t          j                  r|                                 }n| }|D ],}t          |t                    r|V  t	          j        | V  -dS )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KKKK*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                    rt          |          }t          |t                    r#t          |                              |           n|                    |           |                    d           |                    d| d                    d                     d| }|                                |fS )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
zlatin-1s   
z--
zmultipart/form-data; boundary=)r   r   r!   writeencodewriterrender_headersdatar   intr   getvalue)r   r"   bodyr    r*   content_types         r   encode_multipart_formdatar/   ,   sM    99D"$$#F++  

&&&&--i88999t5//11222zdC   	t99DdC   	4LLt$$$$JJt

7JJ$H$$$++I66777>H>>L==??L((r   )r
   r   )r   r   r
   r   )N)r   r   r"   r#   r
   r$   )
__future__r   r   codecsr   r   ior   _typingr   r   r   r   lookupr(   r   r!   r/   r   r   r   <module>r5      s    " " " " " "   				        : : : : : : : :            	w			"5 5 5 53 3 3 3. 26&) &) &) &) &) &) &)r   