HEX
Server: LiteSpeed
System: Linux s1049.use1.mysecurecloudhost.com 4.18.0-477.27.2.lve.el8.x86_64 #1 SMP Wed Oct 11 12:32:56 UTC 2023 x86_64
User: xedaptot (3356)
PHP: 8.3.31
Disabled: NONE
Upload Files
File: //opt/saltstack/salt/lib/python3.10/site-packages/aiohttp/__pycache__/formdata.cpython-310.pyc
o

;jr�@s�ddlZddlZddlmZddlmZddlmZddlm	Z	m
Z
ddlmZm
Z
mZddlmZdd	lmZdd
lmZdZGdd
�d
�ZdS)�N)�Iterable)�Any)�	urlencode)�	MultiDict�MultiDictProxy�)�hdrs�	multipart�payload)�guess_filename)�_safe_header)�Payload)�FormDatac
@s�eZdZdZ			d dd�deeded	edBd
eddf
dd
�Ze	defdd��Z
dddd�dedededBdedBdedBddfdd�Zdeddfdd�Zde
jfdd�Zdejfdd�Zdefdd�ZdS)!rztHelper class for form body generation.

    Supports multipart/form-data and application/x-www-form-urlencoded.
    �TNF)�default_to_multipart�fields�quote_fields�charsetr�returncCs^t�d�|_g|_||_||_||_t|t�rt	|�
��}n
t|t	tf�s(|f}|j|�dS)N�	form-data)
r	�MultipartWriter�_writer�_fields�
_is_multipart�
_quote_fields�_charset�
isinstance�dict�list�items�tuple�
add_fields)�selfrrrrrr�D/opt/saltstack/salt/lib/python3.10/site-packages/aiohttp/formdata.py�__init__s
zFormData.__init__cCs|jS�N)r�r"rrr#�is_multipart+szFormData.is_multipart)�content_type�filename�content_transfer_encoding�name�valuer(r)r*c	Cs:t|tj�r
d|_nt|tttf�r$d}|dur$|dur$t�|t	�|}t
|�td|i�}|dur=t|t�s=t
d|��|durLt|tj�rLt||�}|dur[t
|�||d<d|_i}|durxt|t�slt
d|��t
|�||tj<d|_|dur�t|t�s�t
d|��d}t�|t	�d|_|j�|||f�dS)	NTzIn v4, passing bytes will no longer create a file field. Please explicitly use the filename parameter or pass a BytesIO object.r+z,filename must be an instance of str. Got: %sr)z0content_type must be an instance of str. Got: %sz=content_transfer_encoding must be an instance of str. Got: %szfcontent_transfer_encoding is deprecated. To maintain compatibility with v4 please pass a BytesPayload.)r�io�IOBaser�bytes�	bytearray�
memoryview�warnings�warn�DeprecationWarningrr�str�	TypeErrorrr�CONTENT_TYPEr�append)	r"r+r,r(r)r*�msg�type_options�headersrrr#�	add_field/sN
�

�

���zFormData.add_fieldcGs�t|�}|rO|�d�}t|tj�rt|d�}|�||�n.t|ttf�r,|�	|�
��nt|ttf�rDt|�dkrD|\}}|�||�nt
d|����|sdSdS)Nr�unknown�ztOnly io.IOBase, multidict and (name, file) pairs allowed, use .add_field() for passing more complex parameters, got )r�poprr-r.rr<rr�extendrr �lenr6)r"rZto_addZrec�k�fprrr#r!gs"

���zFormData.add_fieldscCsng}|jD]\}}}|�|d|f�q|jdur|jnd}|dkr%d}nd|}tjt|d|d���|d�S)Nr+zutf-8z!application/x-www-form-urlencodedz-application/x-www-form-urlencoded; charset=%sT)�doseq�encoding)r()rr8rr
�BytesPayloadr�encode)r"�datar:�_r,rr(rrr#�_gen_form_urlencodeds�zFormData._gen_form_urlencodedcCs�|jD]_\}}}ztj|vrtj||tj||jd�}n	tj|||jd�}Wnty>}ztdt|�||f�|�d}~ww|r\|j		dd|j
i|��|jdusTJ�|j�tj
d�|j�|�q|j��|jS)zAEncode a list of fields using the multipart/form-data MIME format)r(r;rE)r;rEz8Can not serialize value type: %r
 headers: %r
 value: %rNrr)r)rrr7r
�get_payloadr�	Exceptionr6�typeZset_content_dispositionrr;ZpopallZCONTENT_LENGTHrZappend_payload�clear)r"Z
dispparamsr;r,�part�excrrr#�_gen_form_data�sH
�����������
zFormData._gen_form_datacCs|jr|��S|��Sr%)rrQrJr&rrr#�__call__�szFormData.__call__)rTN)�__name__�
__module__�__qualname__�__doc__rr�boolr5r$�propertyr'r<r!r
rFrJr	rrQr
rRrrrr#rsP������
�������
�8#r)r-r2�collections.abcr�typingr�urllib.parserZ	multidictrr�rr	r
ZhelpersrZhttp_writerrr
�__all__rrrrr#�<module>s