Ë
    CØïiÚ  ã                   ó„   — d dl Z d dlmZmZmZmZ d dlmZ d dlm	Z	m
Z
 ddlmZmZmZ ddlmZ ddlmZ d	Z G d
„ d«      Zy)é    N)ÚAnyÚIterableÚListÚOptional)Ú	urlencode)Ú	MultiDictÚMultiDictProxyé   )ÚhdrsÚ	multipartÚpayload)Úguess_filename)ÚPayload)ÚFormDatac                   óê   — e Zd ZdZ	 	 	 ddee   dedee   ddfd„Z	e
defd„«       Zdddd	œd
ededee   dee   dee   ddfd„Zdeddfd„Zdej                  fd„Zdej$                  fd„Zdefd„Zy)r   ztHelper class for form body generation.

    Supports multipart/form-data and application/x-www-form-urlencoded.
    NÚfieldsÚquote_fieldsÚcharsetÚreturnc                 ó"  — t        j                  d«      | _        g | _        d| _        d| _        || _        || _        t        |t        «      rt        |j                  «       «      }nt        |t        t        f«      s|f} | j                  |Ž  y )Nú	form-dataF)r   ÚMultipartWriterÚ_writerÚ_fieldsÚ_is_multipartÚ_is_processedÚ_quote_fieldsÚ_charsetÚ
isinstanceÚdictÚlistÚitemsÚtupleÚ
add_fields)Úselfr   r   r   s       úJ/var/www/html/aiagents/fe/lib/python3.12/site-packages/aiohttp/formdata.pyÚ__init__zFormData.__init__   sy   € ô !×0Ñ0°Ó=ˆŒØ"$ˆŒØ"ˆÔØ"ˆÔØ)ˆÔØˆŒä�fœdÔ#Ü˜&Ÿ,™,›.Ó)‰FÜ˜F¤T¬5 MÔ2Ø�YˆFØˆ�‰˜Ò ó    c                 ó   — | j                   S ©N)r   ©r%   s    r&   Úis_multipartzFormData.is_multipart'   s   € à×!Ñ!Ð!r(   )Úcontent_typeÚfilenameÚcontent_transfer_encodingÚnameÚvaluer-   r.   r/   c                óx  — t        |t        j                  «      rd| _        n!t        |t        t
        t        f«      r|€|€|}t        d|i«      }|�t        |t        «      st        d|z  «      ‚|€&t        |t        j                  «      rt        ||«      }|�||d<   d| _        i }|�8t        |t        «      st        d|z  «      ‚||t        j                  <   d| _        |�8t        |t        «      st        d|z  «      ‚||t        j                  <   d| _        | j                  j                  |||f«       y )NTr0   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: %s)r   ÚioÚIOBaser   ÚbytesÚ	bytearrayÚ
memoryviewr   ÚstrÚ	TypeErrorr   r   ÚCONTENT_TYPEÚCONTENT_TRANSFER_ENCODINGr   Úappend)r%   r0   r1   r-   r.   r/   Útype_optionsÚheaderss           r&   Ú	add_fieldzFormData.add_field+   sK  € ô �eœRŸY™YÔ'Ø!%ˆDÕÜ˜¤¤y´*Ð=Ô>ØÐÐ$=Ð$EØ�ä'0°&¸$°Ó'@ˆØÐ¬
°8¼SÔ(AÜØAÀHÑLóð ð Ð¤
¨5´"·)±)Ô <Ü% e¨TÓ2ˆHØÐØ'/ˆL˜Ñ$Ø!%ˆDÔàˆØÐ#Ü˜l¬CÔ0ÜØIÈLÑXóð ð *6ˆG”D×%Ñ%Ñ&Ø!%ˆDÔØ$Ð0ÜÐ7¼Ô=Üð'Ø)BñCóð ð 7PˆG”D×2Ñ2Ñ3Ø!%ˆDÔà�‰×Ñ˜\¨7°EÐ:Õ;r(   c                 óÒ  — t        |«      }|rÚ|j                  d«      }t        |t        j                  «      rt        |d«      }| j                  ||«       nŒt        |t        t        f«      r |j                  |j                  «       «       nVt        |t         t        f«      r&t        |«      dk(  r|\  }}| j                  ||«       nt        dj                  |«      «      ‚|rŒÙy y )Nr   Úunknowné   zxOnly io.IOBase, multidict and (name, file) pairs allowed, use .add_field() for passing more complex parameters, got {!r})r!   Úpopr   r3   r4   r   r?   r	   r   Úextendr"   r#   Úlenr9   Úformat)r%   r   Úto_addÚrecÚkÚfps         r&   r$   zFormData.add_fieldsY   sµ   € Ü�f“ˆáØ—*‘*˜Q“-ˆCä˜#œrŸy™yÔ)Ü" 3¨	Ó2�Ø—‘˜q #Õ&ä˜C¤.´)Ð!<Ô=Ø—‘˜cŸi™i›kÕ*ä˜C¤$¬ Ô/´C¸³HÀ²MØ‘��2Ø—‘˜q "Õ%ô  ð8ç8>¹¸s»óð ô r(   c                 ó  — g }| j                   D ]  \  }}}|j                  |d   |f«       Œ | j                  �| j                  nd}|dk(  rd}nd|z  }t        j                  t        |d|¬«      j                  «       |¬«      S )Nr0   zutf-8z!application/x-www-form-urlencodedz-application/x-www-form-urlencoded; charset=%sT)ÚdoseqÚencoding)r-   )r   r<   r   r   ÚBytesPayloadr   Úencode)r%   Údatar=   Ú_r1   r   r-   s          r&   Ú_gen_form_urlencodedzFormData._gen_form_urlencodedq   s�   € àˆØ&*§l¡lò 	7Ñ"ˆL˜!˜UØ�K‰K˜ fÑ-¨uÐ5Õ6ð	7ð $(§=¡=Ð#<�$—-’-À'ˆà�gÒØ>‰LàMÐPWÑWˆLä×#Ñ#Ü�d $°Ô9×@Ñ@ÓBØ%ô
ð 	
r(   c           
      óš  — | j                   rt        d«      ‚| j                  D ]ä  \  }}}	 t        j                  |v r5t        j                  ||t        j                     || j                  ¬«      }n"t        j                  ||| j                  ¬«      }|rW |j                  	 d
d| j                  i|¤Ž |j                  €J ‚|j                  j                  t        j                  d«       | j                   j#                  |«       Œæ d	| _         | j                   S # t        $ r#}t        dt        |«      ›d|›d|›�«      |‚d}~ww xY w)zAEncode a list of fields using the multipart/form-data MIME formatz$Form data has been processed already)r-   r>   rM   )r>   rM   zCan not serialize value type: z
 headers: z	
 value: Nr   T)r   )r   ÚRuntimeErrorr   r   r:   r   Úget_payloadr   Ú	Exceptionr9   ÚtypeÚset_content_dispositionr   r>   ÚpopallÚCONTENT_LENGTHr   Úappend_payload)r%   Ú
dispparamsr>   r1   ÚpartÚexcs         r&   Ú_gen_form_datazFormData._gen_form_dataƒ   sA  € à×ÒÜÐEÓFÐFØ*.¯,©,ò 	.Ñ&ˆJ˜ ðÜ×$Ñ$¨Ñ/Ü"×.Ñ.ØØ%,¬T×->Ñ->Ñ%?Ø 'Ø!%§¡ô	‘Dô #×.Ñ.Ø w¸¿¹ô�Dñ Ø,�×,Ñ,ØñØ.2×.@Ñ.@ðØDNòð
 —|‘|Ð/Ð/Ð/Ø—‘×#Ñ#¤D×$7Ñ$7¸Ô>à�L‰L×'Ñ'¨Õ-ð9	.ð< "ˆÔØ�|‰|Ðøô% ò Ýä15°eµºgÁuðNóð ðûðús   ¬A)DÄ	E
Ä'EÅE
c                 óZ   — | j                   r| j                  «       S | j                  «       S r*   )r   r_   rR   r+   s    r&   Ú__call__zFormData.__call__¨   s)   € Ø×ÒØ×&Ñ&Ó(Ð(à×,Ñ,Ó.Ð.r(   )© TN)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   Úboolr   r8   r'   Úpropertyr,   r?   r$   r   rN   rR   r   r   r_   r   ra   rb   r(   r&   r   r      sû   „ ñð !#Ø!Ø!%ñ	!à˜‘ð!ð ð!ð ˜#‘ð	!ð
 
ó!ð& ð"˜dò "ó ð"ð '+Ø"&Ø37ò,<àð,<ð ð,<ð
 ˜s‘mð,<ð ˜3‘-ð,<ð $,¨C¡=ð,<ð 
ó,<ð\ #ð ¨$ó ð0
 g×&:Ñ&:ó 
ð$# 	× 9Ñ 9ó #ðJ/˜'ô /r(   r   )r3   Útypingr   r   r   r   Úurllib.parser   Ú	multidictr   r	   Ú r   r   r   Úhelpersr   r   Ú__all__r   rb   r(   r&   ú<module>ro      s1   ðÛ 	ß 0Ó 0Ý "ç /ç &Ñ &Ý #Ý à
€÷^/ò ^/r(   