CasperSecurity

Current Path : /lib/python3/dist-packages/urllib3/__pycache__/
Upload File :
Current File : //lib/python3/dist-packages/urllib3/__pycache__/fields.cpython-310.pyc

o

�jt!�@s�ddlmZddlZddlZddlZddlZddd�Zdd�Zdd	d
�Z	e	�
dd�edd
�D��dd�Zdd�Z
e
ZGdd�de�ZdS)�)�absolute_importN�application/octet-streamcCs|rt�|�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�default�r�0/usr/lib/python3/dist-packages/urllib3/fields.py�guess_content_type
s	r
c	s�t�tj�r��d��t�fdd�dD��s0d|�f}z|�d�W|Sttfy/Ynwtjr8��d��t	j
��d��d|�f�tjrM��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-8c3s�|]}|�vVqdS�Nr)�.0�ch��valuerr	�	<genexpr>+s�z.format_header_param_rfc2231.<locals>.<genexpr>z"\
�%s="%s"�asciiz%s*=%s)�
isinstance�six�binary_type�decode�any�encode�UnicodeEncodeError�UnicodeDecodeError�PY2�email�utils�encode_rfc2231)�namer�resultrrr	�format_header_param_rfc2231s"
��

r"z%22z\\)�"�\cCs&i|]}|dvrt�|�d�|��qS))�z%{:02X})r�unichr�format)r
�ccrrr	�
<dictcomp>Js
�r)� cs:�fdd�}t�d�dd����D���}|�||�}|S)Ncs�|�d�S)Nr)�group)�match��needles_and_replacementsrr	�replacerSsz#_replace_multiple.<locals>.replacer�|cSsg|]}t�|��qSr)�re�escape)r
�needlerrr	�
<listcomp>Wsz%_replace_multiple.<locals>.<listcomp>)r1�compile�join�keys�sub)rr.r/�patternr!rr-r	�_replace_multipleRs�r:cCs,t|tj�r|�d�}t|t�}d||fS)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.
    rr)rrrrr:�_HTML5_REPLACEMENTS)r rrrr	�format_header_param_html5_s

r<c@sTeZdZdZddefdd�Zeefdd��Zdd�Zd	d
�Z	dd�Z
	dd
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`.
    NcCs0||_||_||_i|_|rt|�|_||_dSr)�_name�	_filename�data�headers�dict�header_formatter)�selfr r@rrArCrrr	�__init__�s

zRequestField.__init__cCs`t|t�rt|�dkr|\}}}n|\}}t|�}nd}d}|}|||||d�}|j|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)rrC)�content_type)r�tuple�lenr
�make_multipart)�cls�	fieldnamerrCrr@rG�
request_paramrrr	�from_tuples�s

�zRequestField.from_tuplescCs|�||�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.
        )rC)rDr rrrr	�_render_part�szRequestField._render_partcCsLg}|}t|t�r
|��}|D]\}}|dur |�|�||��qd�|�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�; )rrB�items�appendrOr6)rD�header_parts�parts�iterabler rrrr	�
_render_parts�s
�
zRequestField._render_partscCs�g}gd�}|D]}|j�|d�r|�d||j|f�q|j��D]\}}||vr6|r6|�d||f�q#|�d�d�|�S)z=
        Renders the headers for this request field.
        )�Content-Disposition�Content-Type�Content-LocationFz%s: %sz
)rA�getrRrQr6)rD�lines�	sort_keys�sort_key�header_name�header_valuerrr	�render_headers�s��

zRequestField.render_headerscCsX|pd|jd<|jdd�d|�d|jfd|jff�g�7<||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-datarWrP�r rrXrYN)rAr6rVr>r?)rD�content_dispositionrG�content_locationrrr	rJ�s���
zRequestField.make_multipart)NNN)�__name__�
__module__�__qualname__�__doc__r<rE�classmethodrNrOrVr`rJrrrr	r=~s
�#
�r=)r)�
__future__r�email.utilsrrr1rr
r"r;�update�ranger:r<�format_header_param�objectr=rrrr	�<module>s&
+���	

Hacker Blog, Shell İndir, Sql İnjection, XSS Attacks, LFI Attacks, Social Hacking, Exploit Bot, Proxy Tools, Web Shell, PHP Shell, Alfa Shell İndir, Hacking Training Set, DDoS Script, Denial Of Service, Botnet, RFI Attacks, Encryption
Telegram @BIBIL_0DAY