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



Z @snddlZddlZddlZddlZddlZddlmZmZddlm	Z	ddl
mZddlm
Z
mZmZmZmZddlmZd'Zd(ZGdddeZdd	ZddZGdd
d
ZGdddZGdddeZGdddeZGd d
d
eZGd!ddeZGd"ddeZ Gd#dde Z!Gd$dde Z"Gd%dde Z#Gd&ddeZ$eZ%e%j&ee'e(e)fe%j&ee*e%j&eej+e%j&e!ej,e%j&e"ej-e%j&e#ej.ej/fe%j&e ej0dS))N)ABCabstractmethod)CIMultiDict)hdrs)PY_36content_disposition_headerguess_filenameparse_mimetypesentinel)
DEFAULT_LIMITPAYLOAD_REGISTRYget_payloadpayload_typePayloadBytesPayload
StringPayload
IOBasePayloadBytesIOPayloadBufferedReaderPayload
TextIOPayloadStringIOPayloadJsonPayloadc@seZdZdS)LookupErrorN)__name__
__module____qualname__rr/payload.pyrsrcOstj|||S)N)r
get)dataargskwargsrrr rscCstj||dS)N)r
register)factorytyperrr register_payload sr(c@s(eZdZddZddZdS)rcCs
||_dS)N)r')selfr'rrr __init__&szpayload_type.__init__cCst||j|S)N)r(r')r)r&rrr __call__)szpayload_type.__call__N)rrrr*r+rrrr r$sc@s:eZdZdZddZddZddZdS)	PayloadRegistryzZPayload registry.

    note: we need zope.interface for more efficient adapter search
    cCs
g|_dS)N)	_registry)r)rrr r*4szPayloadRegistry.__init__cOsYt|tr|Sx6|jD]+\}}t||r||||SqWtdS)N)
isinstancerr-r)r)r"r#r$r&r'rrr r!7szPayloadRegistry.getcCs|jj||fdS)N)r-append)r)r&r'rrr r%@szPayloadRegistry.registerN)rrr__doc__r*r!r%rrrr r,.s	r,c
@seZdZdZdZdZdddeddddddZed	d
Z	eddZ
ed
dZeddZeddZ
dddZeddZdS)rNzapplication/octet-streamheaderscontent_typefilenameencodingcKs||_||_||_|dk	rdt||_|tkrdtj|jkrd|jtj}|tkrvd}||_dS)N)	_value	_encoding	_filenamer_headersrrZCONTENT_TYPE
_content_type)r)valuer1r2r3r4r$rrr r*Js			zPayload.__init__cCs|jS)zSize of the payload.)_size)r)rrr sizeYszPayload.sizecCs|jS)zFilename of the payload.)r7)r)rrr r3^szPayload.filenamecCs|jS)zCustom item headers)r8)r)rrr r1cszPayload.headerscCs|jS)zPayload encoding)r6)r)rrr r4hszPayload.encodingcCsZ|jdk	r|jS|jdk	rOtj|jd}|dkrKdS|StjSdS)zContent typeNrzapplication/octet-stream)r9r7	mimetypesZ
guess_typer)r)Zmimerrr r2mszPayload.content_typeTcKs>|jdkrt|_t|d|||jtj<dS)z$Sets ``Content-Disposition`` header.Nquote_fields)r8rrrZCONTENT_DISPOSITION)r)Zdisptyper>Zparamsrrr set_content_dispositionxszPayload.set_content_dispositioncsdS)zLWrite payload.

        writer is an AbstractStreamWriter instance:
        Nr)r)writerrrr writesz
Payload.write)rrrr;r8r9rr*propertyr<r3r1r4r2r?rrArrrr rDscs.eZdZfddZddZS)rcs|d|krd|d<tj|||t||_|jtkrxtr_d|i}ni}tjdt|dS)Nr2zapplication/octet-streamsourcez}Sending a large body directly with raw bytes might lock the event loop. You should probably pass an io.BytesIO object instead)	superr*lenr;TOO_LARGE_BYTES_BODYrwarningswarnResourceWarning)r)r:r#r$)	__class__rr r*s
	zBytesPayload.__init__cs|j|jIdHdS)N)rAr5)r)r@rrr rAszBytesPayload.write)rrrr*rArr)rJr rscs.eZdZddddfddZS)rr4Nr2cs|dkrK|dkr'd}d}qat|}|jjdd}n|dkrad|}tj|j||d|d||dS)Nzutf-8ztext/plain; charset=utf-8charsetztext/plain; charset=%sr4r2)r

parametersr!rDr*encode)r)r:r4r2r#r$mimetype)rJrr r*s	
	zStringPayload.__init__)rrrr*rr)rJr rscs"eZdZfddZS)rcs tj|j||dS)N)rDr*read)r)r:r#r$)rJrr r*szStringIOPayload.__init__)rrrr*rr)rJr rscs1eZdZdfddZddZS)rZ
attachmentcsgd|krt||d<tj||||jdk	rc|dk	rc|j|d|jdS)Nr3)r	rDr*r7r?)r)r:Zdispositionr#r$)rJrr r*s
zIOBasePayload.__init__c
s\zG|jjt}x.|rE|j|IdH|jjt}qWWd|jjXdS)N)r5rOrrAclose)r)r@chunkrrr rAs	zIOBasePayload.write)rrrr*rArr)rJr rs	csLeZdZddddfddZeddZdd	ZS)
rr4Nr2cs|dkrK|dkr'd}d}qat|}|jjdd}n|dkrad|}tj||d|d||dS)Nzutf-8ztext/plain; charset=utf-8rKztext/plain; charset=%sr2r4)r
rLr!rDr*)r)r:r4r2r#r$rN)rJrr r*s	
	zTextIOPayload.__init__cCsGy*tj|jjj|jjSWntk
rBdSYnXdS)N)osfstatr5filenost_sizetellOSError)r)rrr r<s*
zTextIOPayload.sizec
shzS|jjt}x:|rQ|j|j|jIdH|jjt}qWWd|jjXdS)N)r5rOrrArMr6rP)r)r@rQrrr rAs	zTextIOPayload.write)rrrr*rBr<rArr)rJr rsc@s"eZdZeddZdS)rcCs?|jj}|jjdtj}|jj|||S)Nr)r5rVseekrRSEEK_END)r)Zpositionendrrr r<szBytesIOPayload.sizeN)rrrrBr<rrrr rsc@s"eZdZeddZdS)rcCsGy*tj|jjj|jjSWntk
rBdSYnXdS)N)rRrSr5rTrUrVrW)r)rrr r<s*
zBufferedReaderPayload.sizeN)rrrrBr<rrrr rscs.eZdZddejfddZS)rzutf-8zapplication/jsoncs5tj||j||d|d||dS)Nr2r4)rDr*rM)r)r:r4r2dumpsr#r$)rJrr r*s	zJsonPayload.__init__)rrrjsonr[r*rr)rJr rs)r
rrrrrrrrrrri)1ior\r=rRrGabcrrZ	multidictrrZhelpersrrr	r
rZstreamsr__all__rF	Exceptionrrr(rr,rrrrrrrrrr
r%bytes	bytearray
memoryviewstrStringIO
TextIOBaseBytesIOBufferedReaderBufferedRandomIOBaserrrr <module>sJ(
D%
	
Back to Directory File Manager