Viewing File: /opt/alt/python35/lib64/python3.5/site-packages/aiohttp/__pycache__/payload.cpython-35.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)rcst|tttfs.tdt|d|krDd|d<tj|||t||_	|j	t
krtrd|i}ni}tj
dt|dS)Nz$value argument must be byte-ish (%r)r2zapplication/octet-streamsourcez}Sending a large body directly with raw bytes might lock the event loop. You should probably pass an io.BytesIO object instead)r.bytes	bytearray
memoryviewAssertionErrorr'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)rNr 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!rHr*encode)r)r:r4r2r#r$mimetype)rNrr r*s	
	zStringPayload.__init__)rrrr*rr)rNr rscs"eZdZfddZS)rcs tj|j||dS)N)rHr*read)r)r:r#r$)rNrr r*szStringIOPayload.__init__)rrrr*rr)rNr rscs1eZdZdfddZddZS)rZ
attachmentcsgd|krt||d<tj||||jdk	rc|dk	rc|j|d|jdS)Nr3)r	rHr*r7r?)r)r:Zdispositionr#r$)rNrr r*s
zIOBasePayload.__init__c
s\zG|jjt}x.|rE|j|IdH|jjt}qWWd|jjXdS)N)r5rSrrAclose)r)r@chunkrrr rAs	zIOBasePayload.write)rrrr*rArr)rNr rs	csLeZdZddddfddZeddZdd	ZS)
rr4Nr2cs|dkrK|dkr'd}d}qat|}|jjdd}n|dkrad|}tj||d|d||dS)Nzutf-8ztext/plain; charset=utf-8rOztext/plain; charset=%sr2r4)r
rPr!rHr*)r)r:r4r2r#r$rR)rNrr 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)r5rSrrArQr6rT)r)r@rUrrr rAs	zTextIOPayload.write)rrrr*rBr<rArr)rNr rsc@s"eZdZeddZdS)rcCs?|jj}|jjdtj}|jj|||S)Nr)r5rZseekrVSEEK_END)r)Zpositionendrrr r<szBytesIOPayload.sizeN)rrrrBr<rrrr rsc@s"eZdZeddZdS)rcCsGy*tj|jjj|jjSWntk
rBdSYnXdS)N)rVrWr5rXrYrZr[)r)rrr r<s*
zBufferedReaderPayload.sizeN)rrrrBr<rrrr rscs.eZdZddejfddZS)rzutf-8zapplication/jsoncs5tj||j||d|d||dS)Nr2r4)rHr*rQ)r)r:r4r2dumpsr#r$)rNrr r*s	zJsonPayload.__init__)rrrjsonr_r*rr)rNr rs)r
rrrrrrrrrrri)1ior`r=rVrKabcrrZ	multidictrrZhelpersrrr	r
rZstreamsr__all__rJ	Exceptionrrr(rr,rrrrrrrrrr
r%rDrErFstrStringIO
TextIOBaseBytesIOBufferedReaderBufferedRandomIOBaserrrr <module>sJ(
D%
	
Back to Directory File Manager