
    aS                     P    d dl Z d dlZej        rd dlmZ nd dlmZ d dlmZ d Z	dS )    N)StringIO)BytesIO)unicode_to_strc                    t          j        dt                     d}d|                    d          z   }|dz   }t	                      }|                                 D ]\  }}d|z  }t          |          t          g           k    r|g}|D ]}t          |          t          u r|d|d         z  z  }|d	         }nt          |          }|	                    |           |	                    |                    d
                     |	                    d           |	                    |           |	                    |           |	                    d           |
                                |fS )a  

    .. warning::

        This function is deprecated and will be removed in future.
        Please use ``urllib3.filepost.encode_multipart_formdata`` instead.

    Encode the given data to be used in a multipart HTTP POST.

    `data` is a dictionary where keys are the field name, and values are
    either strings or tuples as `(filename, content)` for file uploads.

    This code is based on :class:`distutils.command.upload`.

    Returns a `(body, boundary)` tuple where `body` is binary body value,
    and `boundary` is the boundary used (as native string).

    >>> import w3lib.form
    >>> w3lib.form.encode_multipart({'key': 'value'})
    ('\r\n----------------GHSKFJDLGDS7543FJKLFHRE75642756743254\r\nContent-Disposition: form-data; name="key"\r\n\r\nvalue\r\n----------------GHSKFJDLGDS7543FJKLFHRE75642756743254--\r\n', '--------------GHSKFJDLGDS7543FJKLFHRE75642756743254')
    >>> w3lib.form.encode_multipart({'key1': 'value1', 'key2': 'value2'})   # doctest: +SKIP
    ('\r\n----------------GHSKFJDLGDS7543FJKLFHRE75642756743254\r\nContent-Disposition: form-data; name="key2"\r\n\r\nvalue2\r\n----------------GHSKFJDLGDS7543FJKLFHRE75642756743254\r\nContent-Disposition: form-data; name="key1"\r\n\r\nvalue1\r\n----------------GHSKFJDLGDS7543FJKLFHRE75642756743254--\r\n', '--------------GHSKFJDLGDS7543FJKLFHRE75642756743254')
    >>> w3lib.form.encode_multipart({'somekey': ('path/to/filename', b'\xa1\xa2\xa3\xa4\r\n\r')})
    ('\r\n----------------GHSKFJDLGDS7543FJKLFHRE75642756743254\r\nContent-Disposition: form-data; name="somekey"; filename="path/to/filename"\r\n\r\n\xa1\xa2\xa3\xa4\r\n\r\r\n----------------GHSKFJDLGDS7543FJKLFHRE75642756743254--\r\n', '--------------GHSKFJDLGDS7543FJKLFHRE75642756743254')
    >>>

    z`w3lib.form.encode_multipart` function is deprecated and will be removed in future releases. Please use `urllib3.filepost.encode_multipart_formdata` instead.z3--------------GHSKFJDLGDS7543FJKLFHRE75642756743254s   
--asciis   --z+
Content-Disposition: form-data; name="%s"z; filename="%s"r      zutf-8s   

s   
)warningswarnDeprecationWarningencoder   itemstypetupler   writegetvalue)databoundarysep_boundaryend_boundarybodykeyvaluetitles           *lib/python3.11/site-packages/w3lib/form.pyencode_multipartr   
   sx   : M	@ 		   EHxw777L%'L99Djjll  
U@3F;;$r((""GE 		 		EE{{e##+eAh66a&u--JJ|$$$JJu||G,,---JJ{###JJu		 	JJ|JJw==??H$$    )
r	   sixPY2	cStringIOr   r   io
w3lib.utilr   r    r   r   <module>r#      ss     



7 ------- % % % % % %:% :% :% :% :%r   