
    2h
                         S SK r S SKrS SKJrJrJrJr  S SKJr  S SK	J
r
Jr  SSKJrJrJr  SSKJr  SSKJr  S	r " S
 S5      rg)    N)AnyIterableListOptional)	urlencode)	MultiDictMultiDictProxy   )hdrs	multipartpayload)guess_filename)Payload)FormDatac                      \ rS rSrSr   SSS.S\\   S\S\\	   S	\S
S4
S jjjr
\S
\4S j5       rSSSS.S\	S\S\\	   S\\	   S\\	   S
S4S jjrS\S
S4S jrS
\R                   4S jrS
\R&                  4S jrS
\4S jrSrg)r      zlHelper class for form body generation.

Supports multipart/form-data and application/x-www-form-urlencoded.
NF)default_to_multipartfieldsquote_fieldscharsetr   returnc                $   [         R                  " S5      U l        / U l        X@l        X l        X0l        [        U[        5      (       a  [        UR                  5       5      nO[        U[        [        45      (       d  U4nU R                  " U6   g )N	form-data)r   MultipartWriter_writer_fields_is_multipart_quote_fields_charset
isinstancedictlistitemstuple
add_fields)selfr   r   r   r   s        H/var/www/auris/envauris/lib/python3.13/site-packages/aiohttp/formdata.py__init__FormData.__init__   so     !00="$1)fd##&,,.)FFT5M22YF     c                     U R                   $ N)r   r&   s    r'   is_multipartFormData.is_multipart)   s    !!!r*   )content_typefilenamecontent_transfer_encodingnamevaluer0   r1   r2   c                   [        U[        R                  5      (       a  SU l        OE[        U[        [
        [        45      (       a%  SnUc   Uc  [        R                  " U[        5        Un[        SU05      nUb#  [        U[        5      (       d  [        SU-  5      eUc*  [        U[        R                  5      (       a  [        X!5      nUb  XGS'   SU l        0 nUb<  [        U[        5      (       d  [        SU-  5      eX8[        R                  '   SU l        UbG  [        U[        5      (       d  [        SU-  5      eSn[        R                  " U[        5        SU l        U R                   R#                  XxU45        g )	NTzIn v4, passing bytes will no longer create a file field. Please explicitly use the filename parameter or pass a BytesIO object.r3   z,filename must be an instance of str. Got: %sr1   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   str	TypeErrorr   r   CONTENT_TYPEr   append)	r&   r3   r4   r0   r1   r2   msgtype_optionsheaderss	            r'   	add_fieldFormData.add_field-   st    eRYY''!%Dy*=>>Y  $=$Ec#56'0&$'@
8S(A(AJXUVV
5")) < <%e2H'/$!%D#lC00FU  *6D%%&!%D$07==')BC 
P  MM#12!%D\E:;r*   c                    [        U5      nU(       a  UR                  S5      n[        U[        R                  5      (       a  [        US5      nU R                  XC5        O[        U[        [        45      (       a   UR                  UR                  5       5        OZ[        U[         [        45      (       a%  [        U5      S:X  a  Uu  pEU R                  XE5        O[        SR                  U5      5      eU(       a  M  g g )Nr   unknown   zxOnly io.IOBase, multidict and (name, file) pairs allowed, use .add_field() for passing more complex parameters, got {!r})r"   popr    r6   r7   r   rE   r	   r   extendr#   r$   lenr?   format)r&   r   to_addreckfps         r'   r%   FormData.add_fieldsb   s    f**Q-C#ryy))"3	2q&C.)!<==ciik*C$//CHMq%  88>s  fr*   c                    / nU R                    H  u  p#nUR                  US   U45        M     U R                  b  U R                  OSnUS:X  a  SnOSU-  n[        R                  " [        USUS9R                  5       US9$ )Nr3   zutf-8z!application/x-www-form-urlencodedz-application/x-www-form-urlencoded; charset=%sT)doseqencoding)r0   )r   rA   r   r   BytesPayloadr   encode)r&   datarC   _r4   r   r0   s          r'   _gen_form_urlencodedFormData._gen_form_urlencodedz   s    &*ll"LUKKf-u56 '3 $(==#<$--'g>LJWTL##d$9@@B%
 	
r*   c           
         U R                    H  u  pn [        R                  U;   a3  [        R                  " UU[        R                     UU R
                  S9nO [        R                  " X2U R
                  S9n U(       aX  UR                  "  SSU R                  0UD6  UR                  c   eUR                  R                  [        R                  S5        U R                  R                  U5        M     U R                   R!                  5         U R                  $ ! [         a&  n[        S[        U5      < SU< SU< 35      UeSnAff = f)	zAEncode a list of fields using the multipart/form-data MIME format)r0   rD   rU   )rD   rU   zCan not serialize value type: z
 headers: z	
 value: Nr   )r   )r   r   r@   r   get_payloadr   	Exceptionr?   typeset_content_dispositionr   rD   popallCONTENT_LENGTHr   append_payloadclear)r&   
dispparamsrD   r4   partexcs         r'   _gen_form_dataFormData._gen_form_data   s)   *.,,&J$$/"..%,T->->%? '!%	D #..D ,,.2.@.@DN
 ||///##D$7$7>LL''-9 +7< 	||%  15eguN s   ADD
E)!E

Ec                 d    U R                   (       a  U R                  5       $ U R                  5       $ r,   )r   rh   rZ   r-   s    r'   __call__FormData.__call__   s)    &&((,,..r*   )r   r   r   r   r   ) TN)__name__
__module____qualname____firstlineno____doc__r   r   boolr   r>   r(   propertyr.   rE   r%   r   rV   rZ   r   r   rh   r   rk   __static_attributes__rm   r*   r'   r   r      s    !#!!%	! &+!! ! #	! #! 
!( "d " " '+"&373<3< 3<
 sm3< 3-3< $,C=3< 
3<j# $ 0
g&:&: 
$!	 9 9 !F/' /r*   r   )r6   r;   typingr   r   r   r   urllib.parser   	multidictr   r	    r   r   r   helpersr   r   __all__r   rm   r*   r'   <module>r|      s4    	  0 0 " / & & # 
d/ d/r*   