o
    +if4                  	   @   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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e+ e,d< erd dlm-Z- G dd de.Z/G dd de0ej1Z2dedededdfddZ3e2j4dded dede2ddf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 d0d1 d1e>Z@G d2d3 d3e>ZAG d4d5 d5e;ZBer-d d6lmCZCmDZD eDeE ZFeCeE ZGnd d6lHmCZCmDZD eDZFeCZGG d7d8 d8e:ZIG d9d: d:eIZJe9 ZKeKLe;eEeMeNf eKLe<e0 eKLe=ejO eKLe?ejP eKLe@ejQ eKLeAejRejSf eKLe>ejT eKLeJe% eKjLeIeCe2jUd dS );    N)ABCabstractmethod)chain)IOTYPE_CHECKINGAny
ByteStringDictFinalIterableOptionalTextIOTupleTypeUnion)CIMultiDict   )hdrs)AbstractStreamWriter)	_SENTINEL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   TOO_LARGE_BYTES_BODY)Listc                   @   s   e Zd ZdS )LookupErrorN)__name__
__module____qualname__ r0   r0   H/var/www/html/corbot_env/lib/python3.10/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   A   s    r2   dataargskwargsreturnr    c                 O   s   t j| g|R i |S N)r   get)r6   r7   r8   r0   r0   r1   r   G   s   r   orderfactorytyper=   c                C   s   t j| ||d d S Nr<   )r   register)r>   r?   r=   r0   r0   r1   register_payloadK   s   rB   c                   @   sD   e Zd ZejddededdfddZded	 ded	 fd
dZdS )r   r<   r?   r=   r9   Nc                C   s   || _ || _d S r:   )r?   r=   )selfr?   r=   r0   r0   r1   __init__R   s   
zpayload_type.__init__r>   r    c                 C   s   t || j| jd |S r@   )rB   r?   r=   )rC   r>   r0   r0   r1   __call__V   s   zpayload_type.__call__)	r-   r.   r/   r2   r3   r   rD   r   rE   r0   r0   r0   r1   r   Q   s    r   c                   @   s`   e Zd ZdZdddZeddeded	d
deddf
ddZej	dde
dededdfddZdS )PayloadRegistryzZPayload registry.

    note: we need zope.interface for more efficient adapter search
    r9   Nc                 C   s   g | _ g | _g | _d S r:   )_first_normal_lastrC   r0   r0   r1   rD   e   s   
zPayloadRegistry.__init__)_CHAINr6   r7   rK   z!Type[chain[_PayloadRegistryItem]]r8   r    c                O   sT   t |tr|S || j| j| jD ]\}}t ||r&||g|R i |  S qt r:   )
isinstancer    rG   rH   rI   r,   )rC   r6   rK   r7   r8   r>   r?   r0   r0   r1   r;   j   s   

zPayloadRegistry.getr<   r>   r?   r=   c                C   sh   |t ju r| j||f d S |t ju r| j||f d S |t ju r-| j||f d S td|)NzUnsupported order )	r2   r4   rG   appendr3   rH   r5   rI   
ValueError)rC   r>   r?   r=   r0   r0   r1   rA   y   s   


zPayloadRegistry.register)r9   N)r-   r.   r/   __doc__rD   r   r   r;   r2   r3   PayloadTyperA   r0   r0   r0   r1   rF   _   s2    
	
rF   c                   @   s@  e Zd ZU dZeed< dZee ed< de	ddfde
deeeeeef eeeef  f  deedef dee d	ee d
e
ddfddZedee fddZedee fddZedefddZedefddZedee fddZedefddZ		d%dededede
ddf
d d!Zed"eddf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r|d ur|| jtj< n"| jd ur7t	| jd }|d u r0| j
}|| jtj< n| j
| jtj< | j|pDi  d S Nr   )	_encoding	_filenamer   _headers_valuer   r   CONTENT_TYPE	mimetypes
guess_typerR   update)rC   rT   rU   rV   rW   rX   r8   r0   r0   r1   rD      s   
zPayload.__init__c                 C      | j S )zSize of the payload.)rS   rJ   r0   r0   r1   size      zPayload.sizec                 C   rb   )zFilename of the payload.)r[   rJ   r0   r0   r1   rW      rd   zPayload.filenamec                 C   rb   )zCustom item headers)r\   rJ   r0   r0   r1   rU      rd   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>   s     z+Payload._binary_headers.<locals>.<listcomp>utf-8s   
)joinrU   itemsencoderJ   r0   r0   r1   _binary_headers   s   zPayload._binary_headersc                 C   rb   )zPayload encoding)rZ   rJ   r0   r0   r1   rX      rd   zPayload.encodingc                 C   s   | j tj S )zContent type)r\   r   r^   rJ   r0   r0   r1   rV      s   zPayload.content_typeTrj   disptypequote_fields_charsetparamsc                 K   s"   t |f||d|| jtj< dS )z$Sets ``Content-Disposition`` header.)rp   rq   N)r   r\   r   CONTENT_DISPOSITION)rC   ro   rp   rq   rr   r0   r0   r1   set_content_disposition   s   zPayload.set_content_dispositionwriterc                    s   dS )zLWrite payload.

        writer is an AbstractStreamWriter instance:
        Nr0   rC   ru   r0   r0   r1   write   s    zPayload.write)Trj   )r-   r.   r/   rR   str__annotations__rS   r   intr   r   r   r   r	   r   r   r   rD   propertyrc   rW   rU   bytesrn   rX   rV   boolrt   r   r   rw   r0   r0   r0   r1   r       sf   
  	


c                       s@   e Zd Zdedededdf fddZdeddfd	d
Z  ZS )r!   rT   r7   r8   r9   Nc                    s   t |tttfstdt|d|vrd|d< t j|g|R i | t |tr0|j| _	nt
|| _	| j	tkrJd| i}tjdtfi | d S d S )Nz%value argument must be byte-ish, not rV   rQ   sourcez}Sending a large body directly with raw bytes might lock the event loop. You should probably pass an io.BytesIO object instead)rL   r|   	bytearray
memoryview	TypeErrorr?   superrD   nbytesrS   lenr*   warningswarnResourceWarningrC   rT   r7   r8   	__class__r0   r1   rD      s"   




zBytesPayload.__init__ru   c                    s   | | jI d H  d S r:   )rw   r]   rv   r0   r0   r1   rw      s   zBytesPayload.write)	r-   r.   r/   r   r   rD   r   rw   __classcell__r0   r0   r   r1   r!      s    r!   c                       sF   e Zd Zddddededee dee deddf fd	d
Z  ZS )r"   NrX   rV   rT   r7   rX   rV   r8   r9   c                   sp   |d u r|d u rd}d}nt |}|jdd}n
|d u r!d| }|}t j||g|R ||d| d S )Nrj   text/plain; charset=utf-8charsettext/plain; charset=%sr   )r   
parametersr;   r   rD   rm   )rC   rT   rX   rV   r7   r8   real_encodingmimetyper   r0   r1   rD      s&   	
zStringPayload.__init__)r-   r.   r/   rx   r   r   rD   r   r0   r0   r   r1   r"      s     r"   c                       s2   e Zd Zdee dededdf fddZ  ZS )r'   rT   r7   r8   r9   Nc                    "   t  j| g|R i | d S r:   )r   rD   readr   r   r0   r1   rD        "zStringIOPayload.__init__)r-   r.   r/   r   rx   r   rD   r   r0   r0   r   r1   r'     s    *r'   c                       sZ   e Zd ZU ee ed< 	ddee dedededdf
 fd	d
ZdeddfddZ	  Z
S )r#   r]   
attachmentrT   dispositionr7   r8   r9   Nc                    sl   d|vr
t ||d< t j|g|R i | | jd ur0|d ur2tj| jvr4| j|| jd d S d S d S d S )NrW   )rW   )r   r   rD   r[   r   rs   rU   rt   )rC   rT   r   r7   r8   r   r0   r1   rD     s   zIOBasePayload.__init__ru   c              
      s   t  }z@|d | jjdI d H }|r8||I d H  |d | jjdI d H }|sW |d | jjI d H  d S W |d | jjI d H  d S |d | jjI d H  w )N   )asyncioget_event_looprun_in_executorr]   r   rw   close)rC   ru   loopchunkr0   r0   r1   rw   +  s   2zIOBasePayload.write)r   )r-   r.   r/   r   r   ry   rx   rD   r   rw   r   r0   r0   r   r1   r#     s   
 r#   c                       sx   e Zd ZU eed< ddddededee dee ded	df fd
dZe	d	ee
 fddZded	dfddZ  ZS )r&   r]   Nr   rT   r7   rX   rV   r8   r9   c                   sf   |d u r|d u rd}d}nt |}|jdd}n|d u r!d| }t j|g|R ||d| d S )Nrj   r   r   r   rV   rX   )r   r   r;   r   rD   )rC   rT   rX   rV   r7   r8   r   r   r0   r1   rD   9  s$   	
zTextIOPayload.__init__c                 C   4   zt | j j| j  W S  ty   Y d S w r:   osfstatr]   filenost_sizetellOSErrorrJ   r0   r0   r1   rc   U  s
   zTextIOPayload.sizeru   c              
      s   t  }zN|d | jjdI d H }|rF| jr|j| jdn| }||I d H  |d | jjdI d H }|sW |d | jjI d H  d S W |d | jjI d H  d S |d | jjI d H  w )Nr   )rX   )	r   r   r   r]   r   rZ   rm   rw   r   )rC   ru   r   r   r6   r0   r0   r1   rw   \  s   	2	zTextIOPayload.write)r-   r.   r/   r   ry   r   r   rx   rD   r{   rz   rc   r   rw   r   r0   r0   r   r1   r&   6  s(   
 r&   c                   @   s   e Zd ZedefddZdS )r$   r9   c                 C   s.   | j  }| j dtj}| j | || S rY   )r]   r   seekr   SEEK_END)rC   positionendr0   r0   r1   rc   m  s   
zBytesIOPayload.sizeN)r-   r.   r/   r{   rz   rc   r0   r0   r0   r1   r$   l  s    r$   c                   @   s"   e Zd Zedee fddZdS )r%   r9   c                 C   r   r:   r   rJ   r0   r0   r1   rc   v  s
   zBufferedReaderPayload.sizeN)r-   r.   r/   r{   r   rz   rc   r0   r0   r0   r1   r%   u  s    r%   c                       sD   e Zd Zddejfdedededededed	d
f fddZ  Z	S )r(   rj   zapplication/jsonrT   rX   rV   dumpsr7   r8   r9   Nc                    s.   t  j|||g|R ||d| d S )Nr   )r   rD   rm   )rC   rT   rX   rV   r   r7   r8   r   r0   r1   rD     s   

zJsonPayload.__init__)
r-   r.   r/   jsonr   r   rx   r   rD   r   r0   r0   r   r1   r(     s&    r(   )AsyncIterableAsyncIteratorc                       sR   e Zd ZU dZee ed< dedededdf fddZ	d	e
ddfd
dZ  ZS )r)   N_iterrT   r7   r8   r9   c                    sT   t |tstdt|d|vrd|d< t j|g|R i | | | _d S )NzMvalue argument must support collections.abc.AsyncIterable interface, got {!r}rV   rQ   )	rL   r   r   formatr?   r   rD   	__aiter__r   r   r   r0   r1   rD     s   

zAsyncIterablePayload.__init__ru   c                    sL   | j r$z	 | j  I d H }||I d H  q ty#   d | _ Y d S w d S r:   )r   	__anext__rw   StopAsyncIteration)rC   ru   r   r0   r0   r1   rw     s   zAsyncIterablePayload.write)r-   r.   r/   r   r   _AsyncIteratorry   _AsyncIterabler   rD   r   rw   r   r0   r0   r   r1   r)     s   
 r)   c                       s.   e Zd Zdedededdf fddZ  ZS )StreamReaderPayloadrT   r7   r8   r9   Nc                    r   r:   )r   rD   iter_anyr   r   r0   r1   rD     r   zStreamReaderPayload.__init__)r-   r.   r/   r   r   rD   r   r0   r0   r   r1   r     s    &r   )Vr   enumior   r_   r   r   abcr   r   	itertoolsr   typingr   r   r   r   r	   r
   r   r   r   r   r   r   	multidictr   re   r   r   helpersr   r   r   r   r   streamsr   typedefsr   r   __all__r*   rz   ry   r+   	Exceptionr,   rx   Enumr2   r   r3   rB   r   rP   _PayloadRegistryItemrF   r    r!   r"   r'   r#   r&   r$   r%   r(   r   r   r|   r   r   collections.abcr)   r   r   rA   r   r   StringIO
TextIOBaseBytesIOBufferedReaderBufferedRandomIOBaser5   r0   r0   r0   r1   <module>   s   
 8

'U6	
