
Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­
<!DOCTYPE html>
<html>
U
    'â7`4  ã                   @   sø  d dl Z d dlZd dlZd dlZd dlZd dlZd dlZd dlmZm	Z	 d dl
mZ d dlmZmZmZmZmZmZmZmZmZmZmZmZ d dlmZ ddlmZ ddlmZ dd	lmZm Z m!Z!m"Z"m#Z# dd
l$m%Z% ddl&m'Z'm(Z( dZ)dZ*e�rd dlm+Z+ G dd„ de,ƒZ-G dd„ de.ej/ƒZ0eeeddœdd„Z1e0j2dœed ee0ddœdd„Z3G dd„ dƒZ4G dd„ dƒZ5G dd„ deƒZ6G d d!„ d!e6ƒZ7G d"d#„ d#e7ƒZ8G d$d%„ d%e8ƒZ9G d&d'„ d'e6ƒZ:G d(d)„ d)e:ƒZ;G d*d+„ d+e:ƒZ<G d,d-„ d-e:ƒZ=G d.d/„ d/e7ƒZ>e�r.d d0lm?Z?m@Z@ e@eA ZBe?eA ZCnd d0lDm?Z?m@Z@ e@ZBe?ZCG d1d2„ d2e6ƒZEG d3d4„ d4eEƒZFe5ƒ ZGeG He7eAeIeJf¡ eG He8e.¡ eG He9ejK¡ eG He;ejL¡ eG He<ejM¡ eG He=ejNejOf¡ eG He:ejP¡ eG HeFe%¡ eGjHeEe?e0jQd� dS )5é    N)ÚABCÚabstractmethod)Úchain)ÚIOÚTYPE_CHECKINGÚAnyÚ
ByteStringÚDictÚIterableÚOptionalÚTextÚTextIOÚTupleÚTypeÚUnion)ÚCIMultiDicté   )Úhdrs)ÚAbstractStreamWriter)ÚPY_36Úcontent_disposition_headerÚguess_filenameÚparse_mimetypeÚsentinel)ÚStreamReader)ÚJSONEncoderÚ_CIMultiDict)ÚPAYLOAD_REGISTRYÚget_payloadÚpayload_typeÚPayloadÚBytesPayloadÚStringPayloadÚIOBasePayloadÚBytesIOPayloadÚBufferedReaderPayloadÚTextIOPayloadÚStringIOPayloadÚJsonPayloadÚAsyncIterablePayloadi   )ÚListc                   @   s   e Zd ZdS )ÚLookupErrorN)Ú__name__Ú
__module__Ú__qualname__© r/   r/   úB/opt/alt/python38/lib64/python3.8/site-packages/aiohttp/payload.pyr+   >   s   r+   c                   @   s   e Zd ZdZdZdZdS )ÚOrderÚnormalÚ	try_firstÚtry_lastN)r,   r-   r.   r2   r3   r4   r/   r/   r/   r0   r1   B   s   r1   r    )ÚdataÚargsÚkwargsÚreturnc                 O   s   t j| f|ž|ŽS ©N)r   Úget)r5   r6   r7   r/   r/   r0   r   H   s    r   ©Úorder©ÚfactoryÚtyper<   r8   c                C   s   t j| ||d� d S ©Nr;   )r   Úregister)r>   r?   r<   r/   r/   r0   Úregister_payloadL   s    rB   c                   @   s>   e Zd Zejdœeeddœdd„Zed ed dœdd	„ZdS )
r   r;   N)r?   r<   r8   c                C   s   || _ || _d S r9   )r?   r<   )Úselfr?   r<   r/   r/   r0   Ú__init__S   s    zpayload_type.__init__r    )r>   r8   c                 C   s   t || j| jd� |S r@   )rB   r?   r<   )rC   r>   r/   r/   r0   Ú__call__W   s    zpayload_type.__call__)	r,   r-   r.   r1   r2   r   rD   r   rE   r/   r/   r/   r0   r   R   s   r   c                   @   sZ   e Zd ZdZddœdd„Zedœeeeeddœd	d
„Zej	dœe
d eeddœdd„ZdS )ÚPayloadRegistryzZPayload registry.

    note: we need zope.interface for more efficient adapter search
    N©r8   c                 C   s   g | _ g | _g | _d S r9   )Ú_firstÚ_normalÚ_last©rC   r/   r/   r0   rD   b   s    zPayloadRegistry.__init__)Ú_CHAINr    )r5   r6   rL   r7   r8   c                O   sR   t |tƒr|S || j| j| jƒD ]&\}}t ||ƒr ||f|ž|Ž  S q tƒ ‚d S r9   )Ú
isinstancer    rH   rI   rJ   r+   )rC   r5   rL   r6   r7   r>   r?   r/   r/   r0   r:   g   s    

zPayloadRegistry.getr;   r=   c                C   sf   |t jkr| j ||f¡ nF|t jkr8| j ||f¡ n*|t jkrT| j ||f¡ ntd|›�ƒ‚d S )NzUnsupported order )	r1   r3   rH   Úappendr2   rI   r4   rJ   Ú
ValueError)rC   r>   r?   r<   r/   r/   r0   rA   r   s    


zPayloadRegistry.register)r,   r-   r.   Ú__doc__rD   r   r   r:   r1   r2   r   rA   r/   r/   r/   r0   rF   \   s"   ÿ   þÿ  þrF   c                
   @   s  e Zd ZdZdZdeddfeeee	e
eef eeeef  f  ee ee ee eddœdd„Zeee dœdd„ƒZeee dœd	d
„ƒZee	dœdd„ƒZeedœdd„ƒZeee dœdd„ƒZeedœdd„ƒZdeeeddœdd„Zeeddœdd„ƒZdS )r    úapplication/octet-streamN)ÚvalueÚheadersÚcontent_typeÚfilenameÚencodingr7   r8   c                 K   s�   || _ || _tƒ | _|| _|tk	r8|d k	r8|| jtj< nD| jd k	rnt 	| j¡d }|d kr`| j
}|| jtj< n| j
| jtj< | j |pˆi ¡ d S ©Nr   )Ú	_encodingÚ	_filenamer   Ú_headersÚ_valuer   r   ÚCONTENT_TYPEÚ	mimetypesZ
guess_typeÚ_default_content_typeÚupdate)rC   rR   rS   rT   rU   rV   r7   r/   r/   r0   rD   „   s    
zPayload.__init__rG   c                 C   s   | j S )zSize of the payload.)Ú_sizerK   r/   r/   r0   Úsizež   s    zPayload.sizec                 C   s   | j S )zFilename of the payload.)rY   rK   r/   r/   r0   rU   £   s    zPayload.filenamec                 C   s   | j S )zCustom item headers)rZ   rK   r/   r/   r0   rS   ¨   s    zPayload.headersc                 C   s$   d  dd„ | j ¡ D ƒ¡ d¡d S )NÚ c                 S   s    g | ]\}}|d  | d ‘qS )z: z
r/   )Ú.0ÚkÚvr/   r/   r0   Ú
<listcomp>°   s     z+Payload._binary_headers.<locals>.<listcomp>úutf-8s   
)ÚjoinrS   ÚitemsÚencoderK   r/   r/   r0   Ú_binary_headers­   s    ÿýÿzPayload._binary_headersc                 C   s   | j S )zPayload encoding)rX   rK   r/   r/   r0   rV   ¶   s    zPayload.encodingc                 C   s   | j tj S )zContent type)rZ   r   r\   rK   r/   r/   r0   rT   »   s    zPayload.content_typeT)ÚdisptypeÚquote_fieldsÚparamsr8   c                 K   s    t |fd|i|—Ž| jtj< dS )z$Sets ``Content-Disposition`` header.rm   N)r   rZ   r   ÚCONTENT_DISPOSITION)rC   rl   rm   rn   r/   r/   r0   Úset_content_dispositionÀ   s    ÿÿÿzPayload.set_content_disposition©Úwriterr8   c                 Ã   s   dS )zLWrite payload.

        writer is an AbstractStreamWriter instance:
        Nr/   ©rC   rr   r/   r/   r0   ÚwriteÈ   s    zPayload.write)T)r,   r-   r.   r^   r`   r   r   r   r   r   r	   Ústrr
   r   rD   ÚpropertyÚintra   rU   rS   Úbytesrk   rV   rT   Úboolrp   r   r   rt   r/   r/   r/   r0   r       sL   ø ÿö ÿ  þc                       s8   e Zd Zeeeddœ‡ fdd„Zeddœdd„Z‡  ZS )r!   N©rR   r6   r7   r8   c                    s”   t |tttfƒs"td t|ƒ¡ƒ‚d|kr2d|d< tƒ j|f|ž|Ž t |tƒrZ|j	| _
n
t|ƒ| _
| j
tkr�tr|d| i}ni }tjdtf|Ž d S )Nz)value argument must be byte-ish, not {!r}rT   rQ   Úsourcez}Sending a large body directly with raw bytes might lock the event loop. You should probably pass an io.BytesIO object instead)rM   rx   Ú	bytearrayÚ
memoryviewÚ	TypeErrorÚformatr?   ÚsuperrD   Únbytesr`   ÚlenÚTOO_LARGE_BYTES_BODYr   ÚwarningsÚwarnÚResourceWarning©rC   rR   r6   r7   ©Ú	__class__r/   r0   rD   Ñ   s(    ÿ




üûzBytesPayload.__init__rq   c                 Ã   s   |  | j¡I d H  d S r9   )rt   r[   rs   r/   r/   r0   rt   î   s    zBytesPayload.write)	r,   r-   r.   r   r   rD   r   rt   Ú__classcell__r/   r/   rˆ   r0   r!   Ð   s   r!   c                       s<   e Zd Zdddœeeee ee eddœ‡ fdd„Z‡  ZS )r"   N©rV   rT   ©rR   r6   rV   rT   r7   r8   c                   sn   |d kr2|d krd}d}qFt |ƒ}|j dd¡}n|d krBd| }|}tƒ j| |¡f|ž||dœ|—Ž d S )Nrg   útext/plain; charset=utf-8Úcharsetútext/plain; charset=%sr‹   )r   Ú
parametersr:   r€   rD   rj   )rC   rR   rV   rT   r6   r7   Zreal_encodingÚmimetyperˆ   r/   r0   rD   ó   s&    	ÿüýûzStringPayload.__init__)	r,   r-   r.   r   r   r   ru   rD   rŠ   r/   r/   rˆ   r0   r"   ò   s   ûùr"   c                       s,   e Zd Zee eeddœ‡ fdd„Z‡  ZS )r'   Nrz   c                    s   t ƒ j| ¡ f|ž|Ž d S r9   )r€   rD   Úreadr‡   rˆ   r/   r0   rD     s    zStringIOPayload.__init__)r,   r-   r.   r   ru   r   rD   rŠ   r/   r/   rˆ   r0   r'     s   r'   c                       s@   e Zd Zd	ee eeeddœ‡ fdd„Zeddœdd„Z‡  Z	S )
r#   Ú
attachmentN)rR   Údispositionr6   r7   r8   c                    sZ   d|krt |ƒ|d< tƒ j|f|ž|Ž | jd k	rV|d k	rVtj| jkrV| j|| jd� d S )NrU   )rU   )r   r€   rD   rY   r   ro   rS   rp   )rC   rR   r”   r6   r7   rˆ   r/   r0   rD     s    zIOBasePayload.__init__rq   c              
   Ã   sp   t  ¡ }zJ| d | jjd¡I d H }|rP| |¡I d H  | d | jjd¡I d H }q"W 5 | d | jj¡I d H  X d S ©Ni   )ÚasyncioÚget_event_loopÚrun_in_executorr[   Úcloser’   rt   ©rC   rr   ZloopÚchunkr/   r/   r0   rt   #  s    zIOBasePayload.write)r“   )
r,   r-   r.   r   r   ru   rD   r   rt   rŠ   r/   r/   rˆ   r0   r#     s    ÿ   þr#   c                       sb   e Zd Zdddœeeee ee eddœ‡ fdd„Zeee	 dœdd„ƒZ
edd	œd
d„Z‡  ZS )r&   Nr‹   rŒ   c                   sd   |d kr2|d krd}d}qBt |ƒ}|j dd¡}n|d krBd| }tƒ j|f|ž||dœ|—Ž d S )Nrg   r�   rŽ   r�   ©rT   rV   )r   r�   r:   r€   rD   )rC   rR   rV   rT   r6   r7   r‘   rˆ   r/   r0   rD   /  s$    	ÿüýûzTextIOPayload.__init__rG   c                 C   s:   zt  | j ¡ ¡j| j ¡  W S  tk
r4   Y d S X d S r9   ©ÚosÚfstatr[   ÚfilenoÚst_sizeÚtellÚOSErrorrK   r/   r/   r0   ra   K  s    zTextIOPayload.sizerq   c              
   Ã   sx   t  ¡ }zR| d | jjd¡I d H }|rX| | | j¡¡I d H  | d | jjd¡I d H }q"W 5 | d | jj¡I d H  X d S r•   )	r–   r—   r˜   r[   r™   r’   rt   rj   rX   rš   r/   r/   r0   rt   R  s    zTextIOPayload.write)r,   r-   r.   r   r   r   ru   rD   rv   rw   ra   r   rt   rŠ   r/   r/   rˆ   r0   r&   .  s   ûùr&   c                   @   s   e Zd Zeedœdd„ƒZdS )r$   rG   c                 C   s.   | j  ¡ }| j  dtj¡}| j  |¡ || S rW   )r[   r¢   Úseekrž   ÚSEEK_END)rC   ÚpositionÚendr/   r/   r0   ra   ^  s    
zBytesIOPayload.sizeN)r,   r-   r.   rv   rw   ra   r/   r/   r/   r0   r$   ]  s   r$   c                   @   s"   e Zd Zeee dœdd„ƒZdS )r%   rG   c                 C   s:   zt  | j ¡ ¡j| j ¡  W S  tk
r4   Y d S X d S r9   r�   rK   r/   r/   r0   ra   g  s    zBufferedReaderPayload.sizeN)r,   r-   r.   rv   r   rw   ra   r/   r/   r/   r0   r%   f  s   r%   c                	       s8   e Zd Zddejfeeeeeeddœ‡ fdd„Z‡  Z	S )r(   rg   zapplication/jsonN)rR   rV   rT   Údumpsr6   r7   r8   c                    s,   t ƒ j||ƒ |¡f|ž||dœ|—Ž d S )Nrœ   )r€   rD   rj   )rC   rR   rV   rT   r¨   r6   r7   rˆ   r/   r0   rD   r  s    
ÿüýûzJsonPayload.__init__)
r,   r-   r.   Újsonr¨   r   ru   r   rD   rŠ   r/   r/   rˆ   r0   r(   q  s   ûør(   )ÚAsyncIterableÚAsyncIteratorc                       s<   e Zd ZdZeeeddœ‡ fdd„Zeddœdd„Z‡  Z	S )r)   Nrz   c                    sN   t |tƒstd t|ƒ¡ƒ‚d|kr,d|d< tƒ j|f|ž|Ž | ¡ | _d S )NzOvalue argument must support collections.abc.AsyncIterablebe interface, got {!r}rT   rQ   )	rM   rª   r~   r   r?   r€   rD   Ú	__aiter__Ú_iterr‡   rˆ   r/   r0   rD   •  s    
þÿzAsyncIterablePayload.__init__rq   c                 Ã   sL   | j rHz&| j  ¡ I d H }| |¡I d H  qW n tk
rF   d | _ Y nX d S r9   )r­   Ú	__anext__rt   ÚStopAsyncIteration)rC   rr   r›   r/   r/   r0   rt   ¤  s    zAsyncIterablePayload.write)
r,   r-   r.   r­   Ú_AsyncIterabler   rD   r   rt   rŠ   r/   r/   rˆ   r0   r)   ‘  s   r)   c                       s(   e Zd Zeeeddœ‡ fdd„Z‡  ZS )ÚStreamReaderPayloadNrz   c                    s   t ƒ j| ¡ f|ž|Ž d S r9   )r€   rD   Ziter_anyr‡   rˆ   r/   r0   rD   ±  s    zStreamReaderPayload.__init__)r,   r-   r.   r   r   rD   rŠ   r/   r/   rˆ   r0   r±   °  s   r±   )Rr–   ÚenumÚior©   r]   rž   r„   Úabcr   r   Ú	itertoolsr   Útypingr   r   r   r   r	   r
   r   r   r   r   r   r   Z	multidictr   rb   r   r   Zhelpersr   r   r   r   r   Zstreamsr   Ztypedefsr   r   Ú__all__rƒ   r*   Ú	Exceptionr+   ru   ÚEnumr1   r   r2   rB   r   rF   r    r!   r"   r'   r#   r&   r$   r%   r(   rª   r«   rx   Z_AsyncIteratorr°   Úcollections.abcr)   r±   r   rA   r|   r}   ÚStringIOÚ
TextIOBaseÚBytesIOÚBufferedReaderÚBufferedRandomÚIOBaser4   r/   r/   r/   r0   Ú<module>   sv   8ÿ  þ
#Q"/	
