Viewing File: /opt/alt/python35/lib64/python3.5/site-packages/aiohttp/__pycache__/formdata.cpython-35.pyc



Z@s{ddlZddlmZddlmZmZddlmZmZm	Z	ddl
mZd	ZGdddZ
dS)
N)	urlencode)	MultiDictMultiDictProxy)hdrs	multipartpayload)guess_filenameFormDatac@seZdZdZfddddZeddZddd	dd
dddZd
dZddZ	ddZ
ddZdS)r
z_Helper class for multipart/form-data and
    application/x-www-form-urlencoded body generation.TNcCstjd|_g|_d|_||_||_t|trZt	|j
}nt|t	tfsx|f}|j|dS)Nz	form-dataF)
rZMultipartWriter_writer_fields
_is_multipart
_quote_fields_charset
isinstancedictlistitemstuple
add_fields)selffieldsquote_fieldscharsetr/formdata.py__init__s					zFormData.__init__cCs|jS)N)r
)rrrris_multipartszFormData.is_multipartcontent_typefilenamecontent_transfer_encodingcCst|tjrd|_n6t|tttfrT|dkrT|dkrT|}td|i}|dk	rt|trt	d||dkrt|tjrt
||}|dk	r||d<d|_i}|dk	r%t|tst	d|||tj<d|_|dk	rft|tsPt	d|||tj
<d|_|jj|||fdS)NTnamez,filename must be an instance of str. Got: %srz0content_type must be an instance of str. Got: %sz=content_transfer_encoding must be an instance of str. Got: %s)rioIOBaser
bytes	bytearray
memoryviewrstr	TypeErrorr	rCONTENT_TYPEZCONTENT_TRANSFER_ENCODINGrappend)rr!valuerrr type_optionsheadersrrr	add_field"s8

	

	

	zFormData.add_fieldcGst|}x|r|jd}t|tjrXt|d}|j||qt|ttfr|j	|j
qt|ttfrt|dkr|\}}|j||qt
dj|qWdS)NrunknownzxOnly io.IOBase, multidict and (name, file) pairs allowed, use .add_field() for passing more complex parameters, got {!r})rpoprr"r#r	r.rrextendrrlenr(format)rrZto_addZreckfprrrrEs	'	zFormData.add_fieldscCsg}x1|jD]&\}}}|j|d|fqW|jdk	rR|jnd}|dkrmd}n
d|}tjt|ddd|jd|S)	Nr!zutf-8z!application/x-www-form-urlencodedz-application/x-www-form-urlencoded; charset=%sZdoseqTencodingr)rr*rrZBytesPayloadrencode)rdatar,_r+rrrrr_gen_form_urlencoded\s	zFormData._gen_form_urlencodedcCsx|jD]\}}}y_tj|krYtj|d|tjd|d|j}ntj|d|d|j}WnGtk
r}z'tdt|||f|WYdd}~XnX|r|j	dd|j
||jjtj
d|jj|q
W|jS)zAEncode a list of fields using the multipart/form-data MIME formatrr-r7z8Can not serialize value type: %r
 headers: %r
 value: %rNz	form-datar)rrr)rZget_payloadr	Exceptionr(typeZset_content_dispositionrr-ZpopallZCONTENT_LENGTHrZappend_payload)rZ
dispparamsr-r+partexcrrr_gen_form_datans$/zFormData._gen_form_datacCs!|jr|jS|jSdS)N)r
r@r;)rrrr__call__s	
zFormData.__call__)__name__
__module____qualname____doc__rpropertyrr.rr;r@rArrrrr

s
")r
)r"Zurllib.parserZ	multidictrrrrrZhelpersr	__all__r
rrrr<module>s
Back to Directory File Manager