Your IP : 3.17.174.204


Current Path : /opt/imunify360/venv/lib64/python3.11/site-packages/urllib3/__pycache__/
Upload File :
Current File : //opt/imunify360/venv/lib64/python3.11/site-packages/urllib3/__pycache__/fields.cpython-311.pyc

�

^�Dg�!����ddlmZddlZddlZddlZddlmZdd�Zd�Z	dd	d
�Z
e
�d�edd��D����d
�Z
d�ZeZGd�de��ZdS)�)�absolute_importN�)�six�application/octet-streamc�B�|rtj|��dp|S|S)z�
    Guess the "Content-Type" of a file.

    :param filename:
        The filename to guess the "Content-Type" of using :mod:`mimetypes`.
    :param default:
        If no "Content-Type" can be guessed, default to `default`.
    r)�	mimetypes�
guess_type)�filename�defaults  �E/opt/imunify360/venv/lib64/python3.11/site-packages/urllib3/fields.py�guess_content_typer

s,���<��#�H�-�-�a�0�;�G�;��N�c����t�tj��r��d���t	�fd�dD����s7|�d��d�}	|�d��|S#ttf$rYnwxYwtjr��d���tj
��d���|�d����tjr��d����S)a!
    Helper function to format and quote a single header parameter using the
    strategy defined in RFC 2231.

    Particularly useful for header parameters which might contain
    non-ASCII values, like file names. This follows
    `RFC 2388 Section 4.4 <https://tools.ietf.org/html/rfc2388#section-4.4>`_.

    :param name:
        The name of the parameter, a string expected to be ASCII only.
    :param value:
        The value of the parameter, provided as ``bytes`` or `str``.
    :ret:
        An RFC-2231-formatted unicode string.
    �utf-8c3� �K�|]}|�vV��	dS�N�)�.0�ch�values  �r�	<genexpr>z.format_header_param_rfc2231.<locals>.<genexpr>+s'�����/�/�r�r�U�{�/�/�/�/�/�/rz"\
�="�"�asciiz*=)�
isinstancer�binary_type�decode�any�encode�UnicodeEncodeError�UnicodeDecodeError�PY2�email�utils�encode_rfc2231)�namer�results ` r�format_header_param_rfc2231r(s
��� �%���)�)�&����W�%�%���/�/�/�/�Y�/�/�/�/�/��#�t�t�U�U�U�+��	��M�M�'�"�"�"��M��#�$6�7�	�	�	��D�	����
�w�&����W�%�%��
�K�&�&�u�g�6�6�E����e�e�$�E�
�w�&����W�%�%���Ls�A,�,B�?Bz%22z\\)r�\c�f�i|].}|dv�tj|��d�|����/S))�z%{:02X})r�unichr�format)r�ccs  r�
<dictcomp>r/JsE������
�W���	�
�2���
�)�)�"�-�-���r� c�����fd�}tjd�d�����D������}|�||��}|S)Nc�:���|�d��S)Nr)�group)�match�needles_and_replacementss �r�replacerz#_replace_multiple.<locals>.replacerSs���'����A���7�7r�|c�6�g|]}tj|����Sr)�re�escape)r�needles  r�
<listcomp>z%_replace_multiple.<locals>.<listcomp>Ws"��S�S�S��2�9�V�$�$�S�S�Sr)r9�compile�join�keys�sub)rr5r6�patternr's `   r�_replace_multiplerBRst���8�8�8�8�8��j��	�	�S�S�3K�3P�3P�3R�3R�S�S�S�T�T���G��[�[��5�
)�
)�F��Mrc��t|tj��r|�d��}t	|t
��}|�d|�d�S)a�
    Helper function to format and quote a single header parameter using the
    HTML5 strategy.

    Particularly useful for header parameters which might contain
    non-ASCII values, like file names. This follows the `HTML5 Working Draft
    Section 4.10.22.7`_ and matches the behavior of curl and modern browsers.

    .. _HTML5 Working Draft Section 4.10.22.7:
        https://w3c.github.io/html/sec-forms.html#multipart-form-data

    :param name:
        The name of the parameter, a string expected to be ASCII only.
    :param value:
        The value of the parameter, provided as ``bytes`` or `str``.
    :ret:
        A unicode string, stripped of troublesome characters.
    rrr)rrrrrB�_HTML5_REPLACEMENTS)r&rs  r�format_header_param_html5rE_sL��&�%���)�)�&����W�%�%���e�%8�9�9�E����u�u�u�%�%rc�V�eZdZdZddefd�Zeefd���Zd�Zd�Z	d�Z
	d	d�ZdS)
�RequestFielda
    A data container for request body parameters.

    :param name:
        The name of this request field. Must be unicode.
    :param data:
        The data/value body.
    :param filename:
        An optional filename of the request field. Must be unicode.
    :param headers:
        An optional dict-like object of headers to initially use for the field.
    :param header_formatter:
        An optional callable that is used to encode and format the headers. By
        default, this is :func:`format_header_param_html5`.
    Nc�x�||_||_||_i|_|rt	|��|_||_dSr)�_name�	_filename�data�headers�dict�header_formatter)�selfr&rKr
rLrNs      r�__init__zRequestField.__init__�sC����
�!�����	�����	)���=�=�D�L� 0����rc���t|t��r/t|��dkr|\}}}n|\}}t|��}nd}d}|}|||||���}|�|���|S)a�
        A :class:`~urllib3.fields.RequestField` factory from old-style tuple parameters.

        Supports constructing :class:`~urllib3.fields.RequestField` from
        parameter of key/value strings AND key/filetuple. A filetuple is a
        (filename, data, MIME type) tuple where the MIME type is optional.
        For example::

            'foo': 'bar',
            'fakefile': ('foofile.txt', 'contents of foofile'),
            'realfile': ('barfile.txt', open('realfile').read()),
            'typedfile': ('bazfile.bin', open('bazfile').read(), 'image/jpeg'),
            'nonamefile': 'contents of nonamefile field',

        Field names and filenames must be unicode.
        �N)r
rN)�content_type)r�tuple�lenr
�make_multipart)�cls�	fieldnamerrNr
rKrS�
request_params        r�from_tupleszRequestField.from_tuples�s���$�e�U�#�#�		��5�z�z�Q���/4�,��$���!&���$�1�(�;�;����H��L��D����t�h�AQ�
�
�
�
�	�$�$�,�$�?�?�?��rc�.�|�||��S)aI
        Overridable helper function to format a single header parameter. By
        default, this calls ``self.header_formatter``.

        :param name:
            The name of the parameter, a string expected to be ASCII only.
        :param value:
            The value of the parameter, provided as a unicode string.
        )rN)rOr&rs   r�_render_partzRequestField._render_part�s���$�$�T�5�1�1�1rc���g}|}t|t��r|���}|D]0\}}|�)|�|�||�����1d�|��S)aO
        Helper function to format and quote a single header.

        Useful for single headers that are composed of multiple items. E.g.,
        'Content-Disposition' fields.

        :param header_parts:
            A sequence of (k, v) tuples or a :class:`dict` of (k, v) to format
            as `k1="v1"; k2="v2"; ...`.
        N�; )rrM�items�appendr\r>)rO�header_parts�parts�iterabler&rs      r�
_render_partszRequestField._render_parts�s�������l�D�)�)�	,�#�)�)�+�+�H�#�	=�	=�K�D�%�� ����T�.�.�t�U�;�;�<�<�<���z�z�%� � � rc�j�g}gd�}|D]B}|j�|d��r%|�|�d|j|�����C|j���D]%\}}||vr|r|�|�d|�����&|�d��d�|��S)z=
        Renders the headers for this request field.
        )�Content-Disposition�Content-Type�Content-LocationFz: z
)rL�getr`r_r>)rO�lines�	sort_keys�sort_key�header_name�header_values      r�render_headerszRequestField.render_headers�s�����O�O�O�	�!�	M�	M�H��|����%�0�0�
M����(�(�(�D�L��4J�4J�K�L�L�L��)-��);�);�)=�)=�	J�	J�%�K���)�+�+��J��L�L�k�k�k�<�<�!H�I�I�I��
���W�����|�|�E�"�"�"rc���|pd|jd<|jdxxd�d|�d|jfd|jff��g��z
cc<||jd<||jd<d	S)
a|
        Makes this request field into a multipart request field.

        This method overrides "Content-Disposition", "Content-Type" and
        "Content-Location" headers to the request parameter.

        :param content_type:
            The 'Content-Type' of the request body.
        :param content_location:
            The 'Content-Location' of the request body.

        z	form-datarfr^�r&r
rgrhN)rLr>rdrIrJ)rO�content_dispositionrS�content_locations    rrVzRequestField.make_multipart�s���/B�.Q�\���*�+���*�+�+�+�u�z�z���"�"��t�z�*�[�$�.�,I�J���
�0
�0
�	
�+�+�+�(4���^�$�+;���'�(�(�(r)NNN)�__name__�
__module__�__qualname__�__doc__rErP�classmethodrZr\rdrorVrrrrGrG~s���������(��2�
1�1�1�1� �<U�!�!�!��[�!�F2�2�2�!�!�!�,#�#�#�(MQ�<�<�<�<�<�<rrG)r)�
__future__r�email.utilsr#rr9�packagesrr
r(rD�update�rangerBrE�format_header_param�objectrGrrr�<module>r�s)��&�&�&�&�&�&���������	�	�	�	�����������'�'�'�V�����������%��h�'�'�������
�
�
�&�&�&�80��T<�T<�T<�T<�T<�6�T<�T<�T<�T<�T<r

?>