U
    ;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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/   O/opt/bot/vods_filmes/script/venv/lib/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   @   s   r1   r   )dataargskwargsreturnc                 O   s   t j| f||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 | _i | _d S r9   )_first_normal_last_normal_lookuprC   r/   r/   r0   rD   d   s    zPayloadRegistry.__init__)_CHAINz!Type[chain[_PayloadRegistryItem]]r   )r5   r6   rM   r7   r8   c                O   s   | j r4| j D ]&\}}t||r||f||  S q| jt| }rX||f||S t|trf|S || j| jD ]&\}}t||rt||f||  S qtt d S r9   )	rH   
isinstancerK   r:   r?   r   rI   rJ   r+   )rC   r5   rM   r6   r7   r>   type_Zlookup_factoryr/   r/   r0   r:   j   s    


zPayloadRegistry.getr;   r=   c                C   s   |t jkr| j||f np|t jkrb| j||f t|trV|D ]}|| j|< qDq|| j|< n*|t j	kr~| j
||f ntd|d S )NzUnsupported order )r1   r3   rH   appendr2   rI   rN   r
   rK   r4   rJ   
ValueError)rC   r>   r?   r<   tr/   r/   r0   rA      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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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< |r| j| d S Nr   )	_encoding	_filenamer   _headers_valuer   r   CONTENT_TYPE	mimetypes
guess_typerV   update)rC   rX   rY   rZ   r[   r\   r7   r/   r/   r0   rD      s    
zPayload.__init__rG   c                 C   s   | j S )zSize of the payload.)rW   rL   r/   r/   r0   size   s    zPayload.sizec                 C   s   | j S )zFilename of the payload.)r_   rL   r/   r/   r0   r[      s    zPayload.filenamec                 C   s   | j S )zCustom item headers)r`   rL   r/   r/   r0   rY      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   
)joinrY   itemsencoderL   r/   r/   r0   _binary_headers   s    zPayload._binary_headersc                 C   s   | j S )zPayload encoding)r^   rL   r/   r/   r0   r\      s    zPayload.encodingc                 C   s   | j tj S )zContent type)r`   r   rb   rL   r/   r/   r0   rZ      s    zPayload.content_typeTrl   )disptypequote_fields_charsetparamsr8   c                 K   s"   t |f||d|| jtj< dS )z$Sets ``Content-Disposition`` header.)rr   rs   N)r   r`   r   CONTENT_DISPOSITION)rC   rq   rr   rs   rt   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\   ry   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)Trl   )rl   rw   ) r,   r-   r.   rV   str__annotations__rW   r   intr   r   r   r   r   r
   r   r   rD   propertyrf   r[   rY   bytesrp   r\   rZ   boolrv   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    ra   NrX   r6   r7   r8   c                    s   d|krd|d< t  j|f|| t|tr8|j| _n,t|ttfrRt|| _nt	dt
|| jtkrd| i}tjdtf| d S )NrZ   rU   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   rN   
memoryviewnbytesrW   r   	bytearraylen	TypeErrorr?   r)   warningswarnResourceWarningrC   rX   r6   r7   	__class__r/   r0   rD      s     


zBytesPayload.__init__rl   rw   rx   c                 C   s   | j ||S r9   )ra   r{   rz   r/   r/   r0   r{     s    zBytesPayload.decoder|   c                    s   | | jI d H  d S r9   )r   ra   r~   r/   r/   r0   r     s    zBytesPayload.write)rl   rw   )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\   rZ   rX   r6   r\   rZ   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 )Nrl   text/plain; charset=utf-8charsettext/plain; charset=%sr   )r   
parametersr:   r   rD   ro   )rC   rX   r\   rZ   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| f|| d S r9   )r   rD   readr   r   r/   r0   rD   3  s    zStringIOPayload.__init__)r,   r-   r.   r   r   r   rD   r   r/   r/   r   r0   r&   2  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"   ra   
attachmentN)rX   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 )Nr[   )r[   )r   r   rD   r_   r   ru   rY   rv   )rC   rX   r   r6   r7   r   r/   r0   rD   :  s    zIOBasePayload.__init__r|   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 )N   )asyncioget_event_looprun_in_executorra   closer   r   )rC   r}   loopchunkr/   r/   r0   r   F  s    zIOBasePayload.writerl   rw   rx   c                    s    d  fdd| j D S )Nrg   c                 3   s   | ]}|  V  qd S r9   )r{   )rh   rr\   ry   r/   r0   	<genexpr>Q  s     z'IOBasePayload.decode.<locals>.<genexpr>)rm   ra   	readlinesrz   r/   r   r0   r{   P  s    zIOBasePayload.decode)r   )rl   rw   )r,   r-   r.   ioIOBaser   r   r   r   rD   r   r   r{   r   r/   r/   r   r0   r"   7  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%   ra   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 )Nrl   r   r   r   rZ   r\   )r   r   r:   r   rD   )rC   rX   r\   rZ   r6   r7   r   r   r/   r0   rD   W  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fstatra   filenost_sizetellOSErrorrL   r/   r/   r0   rf   s  s    zTextIOPayload.sizerl   rw   rx   c                 C   s
   | j  S r9   )ra   r   rz   r/   r/   r0   r{   z  s    zTextIOPayload.decoder|   c              
      s   t  }zf|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 5 |d | jjI d H  X d S )Nr   )r\   )	r   r   r   ra   r   r   r^   ro   r   )rC   r}   r   r   r5   r/   r/   r0   r   }  s    zTextIOPayload.write)rl   rw   )r,   r-   r.   r   
TextIOBaser   r   r   r   r   rD   r   r   rf   r{   r   r   r   r/   r/   r   r0   r%   T  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#   ra   rG   c                 C   s.   | j  }| j dtj}| j | || S r]   )ra   r   seekr   SEEK_END)rC   positionendr/   r/   r0   rf     s    
zBytesIOPayload.sizerl   rw   rx   c                 C   s   | j  ||S r9   ra   r   r{   rz   r/   r/   r0   r{     s    zBytesIOPayload.decodeN)rl   rw   )r,   r-   r.   r   BytesIOr   r   r   rf   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$   ra   rG   c              	   C   s>   zt | j j| j  W S  ttfk
r8   Y d S X d S r9   )r   r   ra   r   r   r   r   AttributeErrorrL   r/   r/   r0   rf     s    zBufferedReaderPayload.sizerl   rw   rx   c                 C   s   | j  ||S r9   r   rz   r/   r/   r0   r{     s    zBufferedReaderPayload.decodeN)rl   rw   )r,   r-   r.   r   BufferedIOBaser   r   r   r   rf   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'   rl   zapplication/jsonN)rX   r\   rZ   dumpsr6   r7   r8   c                    s,   t  j|||f|||d| d S )Nr   )r   rD   ro   )rC   rX   r\   rZ   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_iterra   r   c                    sN   t |tstdt|d|kr,d|d< t j|f|| | | _d S )NzMvalue argument must support collections.abc.AsyncIterable interface, got {!r}rZ   rU   )	rN   r   r   formatr?   r   rD   	__aiter__r   r   r   r/   r0   rD     s    
zAsyncIterablePayload.__init__r|   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__r   StopAsyncIteration)rC   r}   r   r/   r/   r0   r     s    zAsyncIterablePayload.writerl   rw   rx   c                 C   s   t dd S )NzUnable to decode.)r   rz   r/   r/   r0   r{     s    zAsyncIterablePayload.decode)rl   rw   )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| 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   )Ur   enumr   r   rc   r   r   abcr   r   	itertoolsr   typingr   r   r   r   r	   r
   r   r   r   r   r   Z	multidictr   rg   r   r   Zhelpersr   r   r   r   r   streamsr   Ztypedefsr   r   __all__r)   r   r   r*   	Exceptionr+   r   Enumr1   r   r2   rB   r   rT   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>   s|    4  
5]#9
#