
    жvg	                         d dl mZ d dlZd dlZd dlZd dlmZ ddlmZ ddl	m
Z
 ddlmZ  ej        d          d	         Zd
 Zd Zd ZddZdS )    )absolute_importN)BytesIO   )RequestField)six)bzutf-8   c                      t          j        t          j        d                    } t          j        s|                     d          } | S )zN
    Our embarrassingly-simple replacement for mimetools.choose_boundary.
       ascii)binasciihexlifyosurandomr   PY2decode)boundarys    Y/var/www/pixelcanvas.ch/venv/lib/python3.11/site-packages/pip/_vendor/urllib3/filepost.pychoose_boundaryr      s<     
2//H7 ,??7++O    c              #      K   t          | t                    rt          j        |           }nt	          |           }|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dictr   	iteritemsiterr   from_tuples)fieldsifields      r   iter_field_objectsr       s       &$ M&!!LL 3 3e\** 	3KKKK*E22222	3 3r   c                     t          | t                    rd t          j        |           D             S d | D             S )a-  
    .. deprecated:: 1.6

    Iterate over fields.

    The addition of :class:`~urllib3.fields.RequestField` makes this function
    obsolete. Instead, use :func:`iter_field_objects`, which returns
    :class:`~urllib3.fields.RequestField` objects.

    Supports list of (k, v) tuples and dicts.
    c              3   $   K   | ]\  }}||fV  d S N .0kvs      r   	<genexpr>ziter_fields.<locals>.<genexpr>:   s*      9941aA999999r   c              3   $   K   | ]\  }}||fV  d S r#   r$   r%   s      r   r)   ziter_fields.<locals>.<genexpr><   s*      &&tq!QF&&&&&&r   )r   r   r   r   )r   s    r   iter_fieldsr+   -   sH     &$ :993=#8#89999&&v&&&&r   c                    t                      }|t                      }t          |           D ]}|                    t	          d|z                       t          |                              |                                           |j        }t          |t                    rt          |          }t          |t          j                  r#t          |                              |           n|                    |           |                    d           |                    t	          d|z                       t          d|z            }|                                |fS )aQ  
    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`).

    :param boundary:
        If not specified, then a random boundary will be generated using
        :func:`urllib3.filepost.choose_boundary`.
    Nz--%s
s   
z--%s--
z multipart/form-data; boundary=%s)r   r   r    writer   writerrender_headersdatar   intstrr   	text_typegetvalue)r   r   bodyr   r0   content_types         r   encode_multipart_formdatar7   ?   s;    99D"$$#F++  

1Z8,--...t5//11222zdC   	t99DdCM** 	4LLt$$$$JJt

7JJq*++,,,9HDEEL==??L((r   r#   )
__future__r   r   codecsr   ior   r   r   packagesr   packages.sixr   lookupr.   r   r    r+   r7   r$   r   r   <module>r>      s    & & & & & &   				                              	w			"  3 3 3(' ' '$#) #) #) #) #) #)r   