wceddlZddlmZmZmZmZddlmZddlm Z m Z ddl m Z m Z mZddlmZddlmZd ZGd d Zy) N)AnyIterableListOptional) urlencode) MultiDictMultiDictProxy)hdrs multipartpayload)guess_filename)Payload)FormDatac eZdZdZ ddeededeeddfdZ e defdZ dddd d ed ed eed eedeeddf dZ deddfdZ dejfdZdej$fdZdefdZy)rztHelper class for form body generation. Supports multipart/form-data and application/x-www-form-urlencoded. Nfields quote_fieldscharsetreturnc"tjd|_g|_d|_d|_||_||_t|trt|j}nt|ttfs|f}|j|y)N form-dataF)r MultipartWriter_writer_fields _is_multipart _is_processed _quote_fields_charset isinstancedictlistitemstuple add_fields)selfrrrs 2/usr/lib/python3/dist-packages/aiohttp/formdata.py__init__zFormData.__init__sy !00= "$ "") fd #&,,.)FFT5M2YF c|jSN)rr%s r& is_multipartzFormData.is_multipart's!!!r() content_typefilenamecontent_transfer_encodingnamevaluer-r.r/cxt|tjrd|_n!t|tt t fr|||}td|i}|t|tstd|z|&t|tjr t||}| ||d<d|_i}|8t|tstd|z||tj<d|_|8t|tstd|z||tj<d|_|jj|||fy)NTr0z,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)rioIOBaserbytes bytearray memoryviewrstr TypeErrorrr CONTENT_TYPECONTENT_TRANSFER_ENCODINGrappend)r%r0r1r-r.r/ type_optionsheaderss r& add_fieldzFormData.add_field+sK eRYY '!%D  y*= >$=$E'0&$'@   8S(AAHL    5")) <%eT2H  '/L $!%D   #lC0ILX*6GD%% &!%D  $ 07=')BC7PGD22 3!%D  \7E:;r(ct|}|r|jd}t|tjrt |d}|j ||nt|ttfr |j|jnVt|ttfr&t|dk(r|\}}|j ||ntdj||ryy)NrunknownzxOnly io.IOBase, multidict and (name, file) pairs allowed, use .add_field() for passing more complex parameters, got {!r})r!poprr3r4rr?r rextendr"r#lenr9format)r%rto_addreckfps r&r$zFormData.add_fieldsYsf**Q-C#ryy)"3 2q#&C.)!<= ciik*C$/CHM2q"% 88>s r(c g}|jD]\}}}|j|d|f|j |jnd}|dk(rd}nd|z}tjt |d|j |S)Nr0zutf-8z!application/x-www-form-urlencodedz-application/x-www-form-urlencoded; charset=%sT)doseqencoding)r-)rr<rr BytesPayloadrencode)r%datar=_r1rr-s r&_gen_form_urlencodedzFormData._gen_form_urlencodedqs&*ll 7 "L!U KKf-u5 6 7$(==#<$--' g >LMPWWL## d$ 9 @ @ B%  r(c |jr td|jD]\}}} tj|vr5t j ||tj||j}n"t j |||j}|rW|j d d|ji||jJ|jjtjd|j j#|d |_|j S#t$r#}tdt|d|d||d}~wwxYw) zAEncode a list of fields using the multipart/form-data MIME formatz$Form data has been processed already)r-r>rM)r>rMzCan not serialize value type: z headers: z value: NrT)r)r RuntimeErrorrr r:r get_payloadr Exceptionr9typeset_content_dispositionrr>popallCONTENT_LENGTHrappend_payload)r% dispparamsr>r1partexcs r&_gen_form_datazFormData._gen_form_datasA   EF F*.,, . &J $$/"..%,T->->%? '!% D#..wD,,,.2.@.@DN ||/// ##D$7$7> LL ' ' -9 .<"||% 15eguN sA)D E 'EE cZ|jr|jS|jSr*)rr_rRr+s r&__call__zFormData.__call__s)   &&( (,,. .r()TN)__name__ __module__ __qualname____doc__rrboolrr8r'propertyr,r?r$r rNrRr rr_rrarbr(r&rrs!#!!% ! !!# !  !&"d""'+"&37,<,<,< sm ,< 3- ,<$,C=,< ,<\#$0 g&:&: $# 9 9#J/'/r(r)r3typingrrrr urllib.parser multidictrr r r r helpersrr__all__rrbr(r&ros1 00"/&&# ^/^/r(