a
     ÑOcB5  ã                   @   s  U 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 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'm(Z( dZ)dZ*e&e+ e,d< e�rd dlm-Z- G dd„ de.ƒZ/G dd„ de0ej1ƒZ2eeeddœdd„Z3e2j4dœed ee2ddœdd„Z5G dd„ dƒZ6ed Z7ee7ef Z8G dd„ dƒZ9G d d„ deƒZ:G d!d"„ d"e:ƒZ;G d#d$„ d$e;ƒZ<G d%d&„ d&e<ƒZ=G d'd(„ d(e:ƒZ>G d)d*„ d*e>ƒZ?G d+d,„ d,e>ƒZ@G d-d.„ d.e>ƒZAG d/d0„ d0e;ƒZBe�rPd d1lmCZCmDZD eDeE ZFeCeE ZGnd d1lHmCZCmDZD eDZFeCZGG d2d3„ d3e:ƒZIG d4d5„ d5eIƒZJe9ƒ ZKeK Le;eEeMeNf¡ eK Le<e0¡ eK Le=ejO¡ eK Le?ejP¡ eK Le@ejQ¡ eK LeAejRejSf¡ eK Le>ejT¡ eK LeJe$¡ eKjLeIeCe2jUd� dS )6é    N)ÚABCÚabstractmethod)Úchain)ÚIOÚTYPE_CHECKINGÚAnyÚ
ByteStringÚDictÚIterableÚOptionalÚTextIOÚTupleÚTypeÚUnion)ÚCIMultiDicté   )Úhdrs)ÚAbstractStreamWriter)ÚPY_36Úcontent_disposition_headerÚguess_filenameÚparse_mimetypeÚsentinel)ÚStreamReader)ÚFinalÚJSONEncoderÚ_CIMultiDict)ÚPAYLOAD_REGISTRYÚget_payloadÚpayload_typeÚPayloadÚBytesPayloadÚStringPayloadÚIOBasePayloadÚBytesIOPayloadÚBufferedReaderPayloadÚTextIOPayloadÚStringIOPayloadÚJsonPayloadÚAsyncIterablePayloadi   ÚTOO_LARGE_BYTES_BODY)ÚListc                   @   s   e Zd ZdS )ÚLookupErrorN)Ú__name__Ú
__module__Ú__qualname__© r0   r0   úF/var/www/html/gsl.tools/lib/python3.9/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/   r3   r4   r5   r0   r0   r0   r1   r2   @   s   r2   r    )ÚdataÚargsÚkwargsÚreturnc                 O   s   t j| g|¢R i |¤ŽS ©N)r   Úget)r6   r7   r8   r0   r0   r1   r   F   s    r   ©Úorder©ÚfactoryÚtyper=   r9   c                C   s   t j| ||d� d S ©Nr<   )r   Úregister)r?   r@   r=   r0   r0   r1   Úregister_payloadJ   s    rC   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=   r9   c                C   s   || _ || _d S r:   )r@   r=   )Úselfr@   r=   r0   r0   r1   Ú__init__Q   s    zpayload_type.__init__r    )r?   r9   c                 C   s   t || j| jd� |S rA   )rC   r@   r=   )rD   r?   r0   r0   r1   Ú__call__U   s    zpayload_type.__call__)	r-   r.   r/   r2   r3   r   rE   r   rF   r0   r0   r0   r1   r   P   s   r   c                   @   sV   e Zd ZdZddœdd„Zedœeededd	œd
d„Zej	dœe
eeddœdd„ZdS )ÚPayloadRegistryzZPayload registry.

    note: we need zope.interface for more efficient adapter search
    N©r9   c                 C   s   g | _ g | _g | _d S r:   )Ú_firstÚ_normalÚ_last©rD   r0   r0   r1   rE   d   s    zPayloadRegistry.__init__)Ú_CHAINz!Type[chain[_PayloadRegistryItem]]r    )r6   r7   rM   r8   r9   c                O   sX   t |tƒr|S || j| j| jƒD ],\}}t ||ƒr ||g|¢R i |¤Ž  S q tƒ ‚d S r:   )Ú
isinstancer    rI   rJ   rK   r,   )rD   r6   rM   r7   r8   r?   r@   r0   r0   r1   r;   i   s    

zPayloadRegistry.getr<   r>   c                C   sf   |t ju r| j ||f¡ nF|t ju r8| j ||f¡ n*|t ju rT| j ||f¡ ntd|›�ƒ‚d S )NzUnsupported order )	r2   r4   rI   Úappendr3   rJ   r5   rK   Ú
ValueError)rD   r?   r@   r=   r0   r0   r1   rB   x   s    


zPayloadRegistry.register)r-   r.   r/   Ú__doc__rE   r   r   r;   r2   r3   ÚPayloadTyperB   r0   r0   r0   r1   rG   ^   s   	üúÿþrG   c                
   @   s   e Zd ZU dZeed< dZee ed< 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e
ddœdd„Zeeddœdd„ƒZdS )r    úapplication/octet-streamÚ_default_content_typeNÚ_size)ÚvalueÚheadersÚcontent_typeÚfilenameÚencodingr8   r9   c                 K   s�   || _ || _tƒ | _|| _|tur8|d ur8|| jtj< nD| jd urnt 	| j¡d }|d u r`| j
}|| jtj< n| j
| jtj< | j |pˆi ¡ d S ©Nr   )Ú	_encodingÚ	_filenamer   Ú_headersÚ_valuer   r   ÚCONTENT_TYPEÚ	mimetypesÚ
guess_typerT   Úupdate)rD   rV   rW   rX   rY   rZ   r8   r0   r0   r1   rE   Š   s    
zPayload.__init__rH   c                 C   s   | j S )zSize of the payload.)rU   rL   r0   r0   r1   Úsize¤   s    zPayload.sizec                 C   s   | j S )zFilename of the payload.)r]   rL   r0   r0   r1   rY   ©   s    zPayload.filenamec                 C   s   | j S )zCustom item headers)r^   rL   r0   r0   r1   rW   ®   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
r0   )Ú.0ÚkÚvr0   r0   r1   Ú
<listcomp>¶   ó    z+Payload._binary_headers.<locals>.<listcomp>úutf-8s   
)ÚjoinrW   ÚitemsÚencoderL   r0   r0   r1   Ú_binary_headers³   s    ÿýÿzPayload._binary_headersc                 C   s   | j S )zPayload encoding)r\   rL   r0   r0   r1   rZ   ¼   s    zPayload.encodingc                 C   s   | j tj S )zContent type)r^   r   r`   rL   r0   r0   r1   rX   Á   s    zPayload.content_typeTrk   )ÚdisptypeÚquote_fieldsÚ_charsetÚparamsr9   c                 K   s"   t |f||dœ|¤Ž| jtj< dS )z$Sets ``Content-Disposition`` header.)rq   rr   N)r   r^   r   ÚCONTENT_DISPOSITION)rD   rp   rq   rr   rs   r0   r0   r1   Úset_content_dispositionÆ   s    ÿÿÿzPayload.set_content_disposition©Úwriterr9   c                 Ã   s   dS )zLWrite payload.

        writer is an AbstractStreamWriter instance:
        Nr0   ©rD   rw   r0   r0   r1   ÚwriteÒ   s    zPayload.write)Trk   )r-   r.   r/   rT   ÚstrÚ__annotations__rU   r   Úintr   r   r   r   r	   r
   r   rE   Úpropertyrd   rY   rW   Úbytesro   rZ   rX   Úboolru   r   r   ry   r0   r0   r0   r1   r    …   sP   
ø ÿö  üú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©rV   r7   r8   r9   c                    sž   t |tttfƒs"tdt|ƒ›�ƒ‚d|vr2d|d< tƒ j|g|¢R i |¤Ž t |tƒr`|j| _	n
t
|ƒ| _	| j	tkrštr‚d| i}ni }tjdtfi |¤Ž d S )Nz%value argument must be byte-ish, not rX   rS   Úsourcez}Sending a large body directly with raw bytes might lock the event loop. You should probably pass an io.BytesIO object instead)rN   r~   Ú	bytearrayÚ
memoryviewÚ	TypeErrorr@   ÚsuperrE   ÚnbytesrU   Úlenr*   r   ÚwarningsÚwarnÚResourceWarning©rD   rV   r7   r8   ©Ú	__class__r0   r1   rE   Û   s$    




üûzBytesPayload.__init__rv   c                 Ã   s   |  | j¡I d H  d S r:   )ry   r_   rx   r0   r0   r1   ry   ö   s    zBytesPayload.write)	r-   r.   r/   r   r   rE   r   ry   Ú__classcell__r0   r0   rŒ   r1   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©rZ   rX   ©rV   r7   rZ   rX   r8   r9   c                   sp   |d u r2|d u rd}d}qFt |ƒ}|j dd¡}n|d u rBd| }|}tƒ j| |¡g|¢R ||dœ|¤Ž d S )Nrk   útext/plain; charset=utf-8Úcharsetútext/plain; charset=%sr�   )r   Ú
parametersr;   r…   rE   rn   )rD   rV   rZ   rX   r7   r8   Zreal_encodingÚmimetyperŒ   r0   r1   rE   û   s&    	ÿüýûzStringPayload.__init__)r-   r.   r/   rz   r   r   rE   rŽ   r0   r0   rŒ   r1   r"   ú   s   ûùr"   c                       s,   e Zd Zee eeddœ‡ fdd„Z‡  ZS )r'   Nr€   c                    s"   t ƒ j| ¡ g|¢R i |¤Ž d S r:   )r…   rE   Úreadr‹   rŒ   r0   r1   rE     s    zStringIOPayload.__init__)r-   r.   r/   r   rz   r   rE   rŽ   r0   r0   rŒ   r1   r'     s   r'   c                       sN   e Zd ZU ee ed< d
ee eeeddœ‡ fdd„Zeddœdd	„Z	‡  Z
S )r#   r_   Ú
attachmentN)rV   Údispositionr7   r8   r9   c                    s`   d|vrt |ƒ|d< tƒ j|g|¢R i |¤Ž | jd ur\|d ur\tj| jvr\| j|| jd� d S )NrY   )rY   )r   r…   rE   r]   r   rt   rW   ru   )rD   rV   r˜   r7   r8   rŒ   r0   r1   rE   !  s    zIOBasePayload.__init__rv   c              
   Ã   s†   t  ¡ }z`| d | jjd¡I d H }|rP| |¡I d H  | d | jjd¡I d H }q"W | d | jj¡I d H  n| d | jj¡I d H  0 d S )Né   )ÚasyncioÚget_event_loopÚrun_in_executorr_   r–   ry   Úclose)rD   rw   ÚloopÚchunkr0   r0   r1   ry   -  s    zIOBasePayload.write)r—   )r-   r.   r/   r   r   r{   rz   rE   r   ry   rŽ   r0   r0   rŒ   r1   r#     s   
 ÿþr#   c                       sl   e Zd ZU eed< 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&   r_   Nr�   r�   c                   sf   |d u r2|d u rd}d}qBt |ƒ}|j dd¡}n|d u rBd| }tƒ j|g|¢R ||dœ|¤Ž d S )Nrk   r‘   r’   r“   ©rX   rZ   )r   r”   r;   r…   rE   )rD   rV   rZ   rX   r7   r8   r•   rŒ   r0   r1   rE   ;  s$    	ÿüýûzTextIOPayload.__init__rH   c                 C   s8   zt  | j ¡ ¡j| j ¡  W S  ty2   Y d S 0 d S r:   ©ÚosÚfstatr_   ÚfilenoÚst_sizeÚtellÚOSErrorrL   r0   r0   r1   rd   W  s    zTextIOPayload.sizerv   c              
   Ã   s¢   t  ¡ }z|| d | jjd¡I d H }|rl| jr:|j| jd�n| ¡ }| |¡I d H  | d | jjd¡I d H }q"W | d | jj¡I d H  n| d | jj¡I d H  0 d S )Nr™   )rZ   )	rš   r›   rœ   r_   r–   r\   rn   ry   r�   )rD   rw   rž   rŸ   r6   r0   r0   r1   ry   ^  s    ÿýzTextIOPayload.write)r-   r.   r/   r   r{   r   r   rz   rE   r}   r|   rd   r   ry   rŽ   r0   r0   rŒ   r1   r&   8  s   
ûùr&   c                   @   s   e Zd Zeedœdd„ƒZdS )r$   rH   c                 C   s.   | j  ¡ }| j  dtj¡}| j  |¡ || S r[   )r_   r¦   Úseekr¢   ÚSEEK_END)rD   ÚpositionÚendr0   r0   r1   rd   o  s    
zBytesIOPayload.sizeN)r-   r.   r/   r}   r|   rd   r0   r0   r0   r1   r$   n  s   r$   c                   @   s"   e Zd Zeee dœdd„ƒZdS )r%   rH   c                 C   s8   zt  | j ¡ ¡j| j ¡  W S  ty2   Y d S 0 d S r:   r¡   rL   r0   r0   r1   rd   x  s    zBufferedReaderPayload.sizeN)r-   r.   r/   r}   r   r|   rd   r0   r0   r0   r1   r%   w  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(   rk   zapplication/jsonN)rV   rZ   rX   Údumpsr7   r8   r9   c                    s.   t ƒ j||ƒ |¡g|¢R ||dœ|¤Ž d S )Nr    )r…   rE   rn   )rD   rV   rZ   rX   r¬   r7   r8   rŒ   r0   r1   rE   ƒ  s    
ÿüýûzJsonPayload.__init__)
r-   r.   r/   Újsonr¬   r   rz   r   rE   rŽ   r0   r0   rŒ   r1   r(   ‚  s   ûør(   )ÚAsyncIterableÚAsyncIteratorc                       sJ   e Zd ZU dZee ed< eeeddœ‡ fdd„Z	e
ddœdd„Z‡  ZS )	r)   NÚ_iterr€   c                    sT   t |tƒstd t|ƒ¡ƒ‚d|vr,d|d< tƒ j|g|¢R i |¤Ž | ¡ | _d S )NzOvalue argument must support collections.abc.AsyncIterablebe interface, got {!r}rX   rS   )	rN   r®   r„   Úformatr@   r…   rE   Ú	__aiter__r°   r‹   rŒ   r0   r1   rE   ¦  s    
þÿzAsyncIterablePayload.__init__rv   c                 Ã   sJ   | j rFz&| j  ¡ I d H }| |¡I d H  qW n tyD   d | _ Y n0 d S r:   )r°   Ú	__anext__ry   ÚStopAsyncIteration)rD   rw   rŸ   r0   r0   r1   ry   µ  s    zAsyncIterablePayload.write)r-   r.   r/   r°   r   Ú_AsyncIteratorr{   Ú_AsyncIterabler   rE   r   ry   rŽ   r0   r0   rŒ   r1   r)   ¢  s   
r)   c                       s(   e Zd Zeeeddœ‡ fdd„Z‡  ZS )ÚStreamReaderPayloadNr€   c                    s"   t ƒ j| ¡ g|¢R i |¤Ž d S r:   )r…   rE   Ziter_anyr‹   rŒ   r0   r1   rE   Â  s    zStreamReaderPayload.__init__)r-   r.   r/   r   r   rE   rŽ   r0   r0   rŒ   r1   r·   Á  s   r·   )Vrš   ÚenumÚior­   ra   r¢   rˆ   Úabcr   r   Ú	itertoolsr   Útypingr   r   r   r   r	   r
   r   r   r   r   r   Z	multidictr   re   r   r   Zhelpersr   r   r   r   r   Zstreamsr   Ztypedefsr   r   r   Ú__all__r*   r|   r{   r+   Ú	Exceptionr,   rz   ÚEnumr2   r   r3   rC   r   rR   Z_PayloadRegistryItemrG   r    r!   r"   r'   r#   r&   r$   r%   r(   r®   r¯   r~   rµ   r¶   Úcollections.abcr)   r·   r   rB   r‚   rƒ   ÚStringIOÚ
TextIOBaseÚBytesIOÚBufferedReaderÚBufferedRandomÚIOBaser5   r0   r0   r0   r1   Ú<module>   sv   
4ÿ
þ
'U 6	
