a
    Rf4                     @   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' 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e/ej0Z1eeeddddZ2e1j3ded ee1ddddZ4G dd dZ5ed Z6ee6ef Z7G dd dZ8G d d deZ9G d!d" d"e9Z:G d#d$ d$e:Z;G d%d& d&e;Z<G d'd( d(e9Z=G d)d* d*e=Z>G d+d, d,e=Z?G d-d. d.e=Z@G d/d0 d0e:ZAerLd d1lmBZBmCZC eCeD ZEeBeD ZFnd d1lGmBZBmCZC eCZEeBZFG d2d3 d3e9ZHG d4d5 d5eHZIe8 ZJeJKe:eDeLeMf eJKe;e/ eJKe<ejN eJKe>ejO eJKe?ejP eJKe@ejQejRf eJKe=ejS eJKeIe$ eJjKeHeBe1jTd 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/   H/var/www/ai-form-bot/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   @   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   F   s    r   orderfactorytyper<   r8   c                C   s   t j| ||d d S Nr;   )r   register)r>   r?   r<   r/   r/   r0   register_payloadJ   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__Q   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__U   s    zpayload_type.__call__)	r,   r-   r.   r1   r2   r   rD   r   rE   r/   r/   r/   r0   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r8   c                 C   s   g | _ g | _g | _d S r9   )_first_normal_lastrC   r/   r/   r0   rD   d   s    zPayloadRegistry.__init__)_CHAINz!Type[chain[_PayloadRegistryItem]]r   )r5   r6   rL   r7   r8   c                O   sX   t |tr|S || j| j| jD ],\}}t ||r ||g|R i |  S q t d S r9   )
isinstancer   rH   rI   rJ   r+   )rC   r5   rL   r6   r7   r>   r?   r/   r/   r0   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 )	r1   r3   rH   appendr2   rI   r4   rJ   
ValueError)rC   r>   r?   r<   r/   r/   r0   rA   x   s    


zPayloadRegistry.register)r,   r-   r.   __doc__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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< nD| jd urnt	| jd }|d u r`| j
}|| jtj< n| j
| jtj< | j|pi  d S Nr   )	_encoding	_filenamer   _headers_valuer   r   CONTENT_TYPE	mimetypes
guess_typerS   update)rC   rU   rV   rW   rX   rY   r7   r/   r/   r0   rD      s    
zPayload.__init__rG   c                 C   s   | j S )zSize of the payload.)rT   rK   r/   r/   r0   size   s    zPayload.sizec                 C   s   | j S )zFilename of the payload.)r\   rK   r/   r/   r0   rX      s    zPayload.filenamec                 C   s   | j S )zCustom item headers)r]   rK   r/   r/   r0   rV      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   
)joinrV   itemsencoderK   r/   r/   r0   _binary_headers   s    zPayload._binary_headersc                 C   s   | j S )zPayload encoding)r[   rK   r/   r/   r0   rY      s    zPayload.encodingc                 C   s   | j tj S )zContent type)r]   r   r_   rK   r/   r/   r0   rW      s    zPayload.content_typeTrj   )disptypequote_fields_charsetparamsr8   c                 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   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   rv   r/   r/   r0   write   s    zPayload.write)Trj   )r,   r-   r.   rS   str__annotations__rT   r   intr   r   r   r   r   r
   r   r   rD   propertyrc   rX   rV   bytesrn   rY   rW   boolrt   r   r   rx   r/   r/   r/   r0   r      sP   
   c                       sB   e Zd Zeeeef eedd fddZe	ddddZ
  ZS )r    NrU   r6   r7   r8   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rd| i}tjdtfi | d S )Nz%value argument must be byte-ish, not rW   rR   sourcez}Sending a large body directly with raw bytes might lock the event loop. You should probably pass an io.BytesIO object instead)rM   r}   	bytearray
memoryview	TypeErrorr?   superrD   nbytesrT   lenr)   warningswarnResourceWarningrC   rU   r6   r7   	__class__r/   r0   rD      s     



zBytesPayload.__init__ru   c                    s   | | jI d H  d S r9   )rx   r^   rw   r/   r/   r0   rx      s    zBytesPayload.write)r,   r-   r.   r   r}   r   r   r   rD   r   rx   __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rY   rW   rU   r6   rY   rW   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 )Nrj   text/plain; charset=utf-8charsettext/plain; charset=%sr   )r   
parametersr:   r   rD   rm   )rC   rU   rY   rW   r6   r7   Zreal_encodingmimetyper   r/   r0   rD      s&    	zStringPayload.__init__)r,   r-   r.   ry   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   ry   r   rD   r   r/   r/   r   r0   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)rU   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 )NrX   )rX   )r   r   rD   r\   r   rs   rV   rt   )rC   rU   r   r6   r7   r   r/   r0   rD      s    zIOBasePayload.__init__ru   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   rx   close)rC   rv   loopchunkr/   r/   r0   rx   ,  s    zIOBasePayload.write)r   )r,   r-   r.   r   r   rz   ry   rD   r   rx   r   r/   r/   r   r0   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 )Nrj   r   r   r   rW   rY   )r   r   r:   r   rD   )rC   rU   rY   rW   r6   r7   r   r   r/   r0   rD   :  s$    	zTextIOPayload.__init__rG   c                 C   s8   zt | j j| j  W S  ty2   Y d S 0 d S r9   osfstatr^   filenost_sizetellOSErrorrK   r/   r/   r0   rc   V  s    zTextIOPayload.sizeru   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   )rY   )	r   r   r   r^   r   r[   rm   rx   r   )rC   rv   r   r   r5   r/   r/   r0   rx   ]  s    zTextIOPayload.write)r,   r-   r.   r   rz   r   r   ry   rD   r|   r{   rc   r   rx   r   r/   r/   r   r0   r%   7  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 rZ   )r^   r   seekr   SEEK_END)rC   positionendr/   r/   r0   rc   n  s    
zBytesIOPayload.sizeN)r,   r-   r.   r|   r{   rc   r/   r/   r/   r0   r#   m  s   r#   c                   @   s"   e Zd Zeee dddZdS )r$   rG   c                 C   s8   zt | j j| j  W S  ty2   Y d S 0 d S r9   r   rK   r/   r/   r0   rc   w  s    zBufferedReaderPayload.sizeN)r,   r-   r.   r|   r   r{   rc   r/   r/   r/   r0   r$   v  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'   rj   zapplication/jsonN)rU   rY   rW   dumpsr6   r7   r8   c                    s.   t  j|||g|R ||d| d S )Nr   )r   rD   rm   )rC   rU   rY   rW   r   r6   r7   r   r/   r0   rD     s    
zJsonPayload.__init__)
r,   r-   r.   jsonr   r   ry   r   rD   r   r/   r/   r   r0   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 )NzMvalue argument must support collections.abc.AsyncIterable interface, got {!r}rW   rR   )	rM   r   r   formatr?   r   rD   	__aiter__r   r   r   r/   r0   rD     s    
zAsyncIterablePayload.__init__ru   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__rx   StopAsyncIteration)rC   rv   r   r/   r/   r0   rx     s    zAsyncIterablePayload.write)r,   r-   r.   r   r   _AsyncIteratorrz   _AsyncIterabler   rD   r   rx   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   )Ur   enumior   r`   r   r   abcr   r   	itertoolsr   typingr   r   r   r   r	   r
   r   r   r   r   r   Z	multidictr   rd   r   r   Zhelpersr   r   r   r   r   Zstreamsr   Ztypedefsr   r   __all__r)   r{   rz   r*   	Exceptionr+   ry   Enumr1   r   r2   rB   r   rQ   Z_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IOBaser4   r/   r/   r/   r0   <module>   sv   
4

'U6	
