a
    `g=                     @   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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( 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rTd d1lmCZCmDZD eDeE ZFeCeE ZGnd d1lHmCZCmDZD eDZFeCZGG d2d3 d3e:ZIG d4d5 d5eIZJe9 ZKeKLe;eEeMeNf eKLe<e0 eKLe=ejO eKLe?ejP eKLe@ejQ eKLeAejRejSf eKLe>ejT eKLeJe% eKjLeIeCe2jUd dS )6    N)ABCabstractmethod)chain)IOTYPE_CHECKINGAny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__ r/   r/   ]/var/www/html/cobodadashboardai.evdpl.com/venv/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.   r2   r3   r4   r/   r/   r/   r0   r1   A   s   r1   r   )dataargskwargsreturnc                 O   s   t j| g|R i |S N)r   get)r5   r6   r7   r/   r/   r0   r   G   s    r   orderfactorytyper<   r8   c                C   s   t j| ||d d S Nr;   )r   register)r>   r?   r<   r/   r/   r0   register_payloadK   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__R   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__V   s    zpayload_type.__call__)	r,   r-   r.   r1   r2   r   rD   r   rE   r/   r/   r/   r0   r   Q   s   r   c                   @   sZ   e Zd 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
    _first_normal_last_normal_lookupNr8   c                 C   s   g | _ g | _g | _i | _d S r9   rG   rC   r/   r/   r0   rD   g   s    zPayloadRegistry.__init__)_CHAINz!Type[chain[_PayloadRegistryItem]]r   )r5   r6   rN   r7   r8   c                O   s   | j r:| j D ],\}}t||r||g|R i |  S q| jt| }rd||g|R i |S t|trr|S || j| jD ],\}}t||r||g|R i |  S qt d S r9   )	rH   
isinstancerK   r:   r?   r   rI   rJ   r+   )rC   r5   rN   r6   r7   r>   type_Zlookup_factoryr/   r/   r0   r:   m   s    


zPayloadRegistry.getr;   r=   c                C   s   |t ju r| j||f np|t ju rb| j||f t|trV|D ]}|| j|< qDq|| j|< n*|t j	u r~| j
||f ntd|d S )NzUnsupported order )r1   r3   rH   appendr2   rI   rO   r
   rK   r4   rJ   
ValueError)rC   r>   r?   r<   tr/   r/   r0   rA      s    



zPayloadRegistry.register)r,   r-   r.   __doc__	__slots__rD   r   r   r:   r1   r2   PayloadTyperA   r/   r/   r/   r0   rF   _   s    
rF   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def 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d"eee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encodingr7   r8   c                 K   s   || _ || _t | _|| _|tur8|d ur8|| jtj< nZ| jd urtj	dkrTt
j}nt
j}|| jd }|d u rv| j}|| jtj< n| j| jtj< |r| j| d S )N)      r   )	_encoding	_filenamer   _headers_valuer   r   CONTENT_TYPEsysversion_info	mimetypesZguess_file_type
guess_typerX   update)rC   rZ   r[   r\   r]   r^   r7   Zguesserr/   r/   r0   rD      s"    

zPayload.__init__rL   c                 C   s   | j S )zSize of the payload.)rY   rM   r/   r/   r0   size   s    zPayload.sizec                 C   s   | j S )zFilename of the payload.)rb   rM   r/   r/   r0   r]      s    zPayload.filenamec                 C   s   | j S )zCustom item headers)rc   rM   r/   r/   r0   r[      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>       z+Payload._binary_headers.<locals>.<listcomp>utf-8s   
)joinr[   itemsencoderM   r/   r/   r0   _binary_headers   s    zPayload._binary_headersc                 C   s   | j S )zPayload encoding)ra   rM   r/   r/   r0   r^      s    zPayload.encodingc                 C   s   | j tj S )zContent type)rc   r   re   rM   r/   r/   r0   r\      s    zPayload.content_typeTrr   )disptypequote_fields_charsetparamsr8   c                 K   s"   t |f||d|| jtj< dS )z$Sets ``Content-Disposition`` header.)rx   ry   N)r   rc   r   CONTENT_DISPOSITION)rC   rw   rx   ry   rz   r/   r/   r0   set_content_disposition   s    zPayload.set_content_dispositionstrictr^   errorsr8   c                 C   s   dS )z~Return string representation of the value.

        This is named decode() to allow compatibility with bytes objects.
        Nr/   rC   r^   r   r/   r/   r0   decode   s    zPayload.decodewriterr8   c                    s   dS )zLWrite payload.

        writer is an AbstractStreamWriter instance:
        Nr/   rC   r   r/   r/   r0   write   s    zPayload.write)Trr   )rr   r}   ) r,   r-   r.   rX   str__annotations__rY   r   intr   r   r   r   r   r
   r   r   rD   propertyrk   r]   r[   bytesrv   r^   r\   boolr|   r   r   r   r   r/   r/   r/   r0   r      sT   
   c                       s`   e Zd ZU eed< eeeef eedd fddZ	de
e
e
dd	d
ZeddddZ  ZS )r    rd   NrZ   r6   r7   r8   c                    s   d|vrd|d< t  j|g|R i | t|tr>|j| _n,t|ttfrXt|| _nt	dt
|| jtkrd| i}tjdtfi | d S )Nr\   rW   z%value argument must be byte-ish, not sourcez}Sending a large body directly with raw bytes might lock the event loop. You should probably pass an io.BytesIO object instead)superrD   rO   
memoryviewnbytesrY   r   	bytearraylen	TypeErrorr?   r)   warningswarnResourceWarningrC   rZ   r6   r7   	__class__r/   r0   rD      s     


zBytesPayload.__init__rr   r}   r~   c                 C   s   | j ||S r9   )rd   r   r   r/   r/   r0   r     s    zBytesPayload.decoder   c                    s   | | jI d H  d S r9   )r   rd   r   r/   r/   r0   r     s    zBytesPayload.write)rr   r}   )r,   r-   r.   r   r   r   r   r   r   rD   r   r   r   r   __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r^   r\   rZ   r6   r^   r\   r7   r8   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 )Nrr   text/plain; charset=utf-8charsettext/plain; charset=%sr   )r   
parametersr:   r   rD   ru   )rC   rZ   r^   r\   r6   r7   Zreal_encodingmimetyper   r/   r0   rD     s&    	zStringPayload.__init__)r,   r-   r.   r   r   r   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&   Nr   c                    s"   t  j| g|R i | d S r9   )r   rD   readr   r   r/   r0   rD   :  s    zStringIOPayload.__init__)r,   r-   r.   r   r   r   rD   r   r/   r/   r   r0   r&   9  s   r&   c                       s`   e Zd ZU ejed< dee eeedd fddZ	e
dddd	ZdeeedddZ  ZS )r"   rd   
attachmentN)rZ   dispositionr6   r7   r8   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 )Nr]   )r]   )r   r   rD   rb   r   r{   r[   r|   )rC   rZ   r   r6   r7   r   r/   r0   rD   A  s    zIOBasePayload.__init__r   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_executorrd   r   r   close)rC   r   loopchunkr/   r/   r0   r   M  s    zIOBasePayload.writerr   r}   r~   c                    s    d  fdd| j D S )Nrl   c                 3   s   | ]}|  V  qd S r9   )r   )rm   rr^   r   r/   r0   	<genexpr>X  rq   z'IOBasePayload.decode.<locals>.<genexpr>)rs   rd   	readlinesr   r/   r   r0   r   W  s    zIOBasePayload.decode)r   )rr   r}   )r,   r-   r.   ioIOBaser   r   r   r   rD   r   r   r   r   r/   r/   r   r0   r"   >  s   

 
r"   c                       s   e Zd ZU ej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de	e	e	dddZeddddZ  ZS )r%   rd   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 )Nrr   r   r   r   r\   r^   )r   r   r:   r   rD   )rC   rZ   r^   r\   r6   r7   r   r   r/   r0   rD   ^  s$    	zTextIOPayload.__init__rL   c                 C   s8   zt | j j| j  W S  ty2   Y d S 0 d S r9   )osfstatrd   filenost_sizetellOSErrorrM   r/   r/   r0   rk   z  s    zTextIOPayload.sizerr   r}   r~   c                 C   s
   | j  S r9   )rd   r   r   r/   r/   r0   r     s    zTextIOPayload.decoder   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   )r^   )	r   r   r   rd   r   ra   ru   r   r   )rC   r   r   r   r5   r/   r/   r0   r     s    zTextIOPayload.write)rr   r}   )r,   r-   r.   r   
TextIOBaser   r   r   r   r   rD   r   r   rk   r   r   r   r   r/   r/   r   r0   r%   [  s   

r%   c                   @   s>   e Zd ZU ejed< eedddZde	e	e	ddd	Z
d
S )r#   rd   rL   c                 C   s.   | j  }| j dtj}| j | || S )Nr   )rd   r   seekr   SEEK_END)rC   positionendr/   r/   r0   rk     s    
zBytesIOPayload.sizerr   r}   r~   c                 C   s   | j  ||S r9   rd   r   r   r   r/   r/   r0   r     s    zBytesIOPayload.decodeN)rr   r}   )r,   r-   r.   r   BytesIOr   r   r   rk   r   r   r/   r/   r/   r0   r#     s   

r#   c                   @   sB   e Zd ZU ejed< eee dddZ	de
e
e
ddd	Zd
S )r$   rd   rL   c              	   C   s<   zt | j j| j  W S  ttfy6   Y d S 0 d S r9   )r   r   rd   r   r   r   r   AttributeErrorrM   r/   r/   r0   rk     s    zBufferedReaderPayload.sizerr   r}   r~   c                 C   s   | j  ||S r9   r   r   r/   r/   r0   r     s    zBufferedReaderPayload.decodeN)rr   r}   )r,   r-   r.   r   BufferedIOBaser   r   r   r   rk   r   r   r/   r/   r/   r0   r$     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'   rr   zapplication/jsonN)rZ   r^   r\   dumpsr6   r7   r8   c                    s.   t  j|||g|R ||d| d S )Nr   )r   rD   ru   )rC   rZ   r^   r\   r   r6   r7   r   r/   r0   rD     s    
zJsonPayload.__init__)
r,   r-   r.   jsonr   r   r   r   rD   r   r/   r/   r   r0   r'     s   r'   )AsyncIterableAsyncIteratorc                       sf   e Zd ZU dZee ed< eed< eeedd fddZ	e
dddd	ZdeeedddZ  ZS )r(   N_iterrd   r   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}r\   rW   )	rO   r   r   formatr?   r   rD   	__aiter__r   r   r   r/   r0   rD     s    
zAsyncIterablePayload.__init__r   c                    sJ   | j rFz&| j  I d H }||I d H  qW n tyD   d | _ Y n0 d S r9   )r   	__anext__r   StopAsyncIteration)rC   r   r   r/   r/   r0   r     s    zAsyncIterablePayload.writerr   r}   r~   c                 C   s   t dd S )NzUnable to decode.)r   r   r/   r/   r0   r     s    zAsyncIterablePayload.decode)rr   r}   )r,   r-   r.   r   r   _AsyncIteratorr   _AsyncIterabler   rD   r   r   r   r   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 )StreamReaderPayloadNr   c                    s"   t  j| g|R i | 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   )Vr   enumr   r   rh   r   rf   r   abcr   r   	itertoolsr   typingr   r   r   r   r	   r
   r   r   r   r   r   Z	multidictr   rl   r   r   helpersr   r   r   r   r   streamsr   Ztypedefsr   r   __all__r)   r   r   r*   	Exceptionr+   r   Enumr1   r   r2   rB   r   rV   Z_PayloadRegistryItemrF   r   r    r!   r&   r"   r%   r#   r$   r'   r   r   r   r   r   collections.abcr(   r   r   rA   r   r   StringIOr   r   BufferedReaderBufferedRandomr   r4   r/   r/   r/   r0   <module>   sx   
4

7a#9
#